第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解析 JWT:輸入字節(jié) 0 處的非法 base64 數(shù)據(jù)

解析 JWT:輸入字節(jié) 0 處的非法 base64 數(shù)據(jù)

Go
小唯快跑啊 2022-10-24 15:31:06
我正在我的網(wǎng)絡(luò)應(yīng)用程序上制作身份驗證表單。首先,我將表單數(shù)據(jù)發(fā)送到服務(wù)器,它生成令牌并將其存儲在 localStorage然后,我想從表單頁面重定向到主頁。這是將令牌發(fā)送到服務(wù)器的 JavaScript,以便我在主頁上被視為授權(quán)用戶:const xhr = new XMLHttpRequest()xhr.open('GET', '/')xhr.setRequestHeader('Authorization', localStorage.token)xhr.send()xhr.onload  = () => {if(xhr.status >= 400) {    console.log("error")  }}xhr.onerror = () => {    console.log("error")}然后我想檢查令牌并顯示主頁。這是它的 Golang 函數(shù):func (h *Handler) Home_page(c *gin.Context) {header := c.GetHeader("Authorization")    if header != "" {        _, err := h.services.Authorization.ParseToken(header)        if err != nil {            newErrorResponse(c, http.StatusUnauthorized, err.Error())            return        }        c.HTML(            http.StatusOK,            "home_page.gohtml",            gin.H{                "IsAuth": true,            },        )        return    }}ParseToken 函數(shù):func (s *AuthService) ParseToken(accessToken string) (int, error) {    token, err := jwt.ParseWithClaims(accessToken, &tokenClaims{}, func(token *jwt.Token) (interface{}, error) {        if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {            return nil, errors.New("invalid signing method")        }        return []byte(signingKey), nil //signingKey is a string with random elements    })    if err != nil {        return 0, err    }    claims, ok := token.Claims.(*tokenClaims)    if !ok {        return 0, errors.New("token claims are not of type *tokenClaims")    }    return claims.UserId, nil}問題是我收到此錯誤:ERRO[0001] 輸入字節(jié) 0 處的 base64 數(shù)據(jù)非法我已經(jīng)檢查了 jwt.io 上的令牌,它表明令牌已經(jīng)過驗證,可能問題出在我作為令牌傳遞的字符串類型上。另一個問題是,如果我不檢查從令牌驗證返回的錯誤,主頁不會顯示此錯誤:http: 恐慌服務(wù) [::1]:50490: 寫 tcp [::1]:8083->[::1]:50490: 寫: 破管道我是 Golang 的新手,一直在努力解決這個問題,盡管它看起來很典型。對于如何處理令牌或從身份驗證表單重定向的任何幫助,我將非常感謝!編輯:我正在使用https://github.com/golang-jwt/jwt/v4
查看完整描述

1 回答

?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

不知何故,這個問題: 輸入字節(jié) 0 處的非法 base64 數(shù)據(jù)

通過更改我存儲令牌的方式來解決。我像這樣存儲在本地存儲中:

localStorage.setItem('token', data.token)

我將其更改為下一行,錯誤消失了:

localStorage.token = data.token

(數(shù)據(jù)是我的服務(wù)器返回的帶有令牌的 JSON)

現(xiàn)在,如果我記錄令牌的值,它會顯示為不帶逗號。@Crowman,謝謝你的回答!

編輯:發(fā)生了第二個管道損壞問題,因為我沒有在客戶端等待答案。所以現(xiàn)在我更改了 JS 代碼以等待響應(yīng),但我仍然在努力解決如何顯示我使用 JavaScript 從服務(wù)器接收到的 html 頁面。


查看完整回答
反對 回復(fù) 2022-10-24
  • 1 回答
  • 0 關(guān)注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號