亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何在 Golang 中驗證 JWT 令牌

如何在 Golang 中驗證 JWT 令牌

Go
Helenr 2022-06-13 15:12:57
我想檢查我們的服務器是否生成了 JWT?我使用 JWT 進行身份驗證并使用 RS256 作為 JWT 的算法現在,我想在 Golang 中編寫一個函數來驗證 JWT 令牌是否屬于我們。下面是我實現的代碼:    publicKey = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAxxxxxxf2iF+20xHTZ4jTUBzYmikBuUsm0839T5SDmwEquTB\nfQIDAQAB\n-----END PUBLIC KEY-----\n"    // sample token string taken from the New example    tokenString := this.JWT[0]    claims := jwt.MapClaims{}    token, err := jwt.ParseWithClaims(tokenString, &claims, func(token *jwt.Token) (interface{}, error) {        return []byte(publicKey), nil    })    // ... error handling    if err != nil {        fmt.Println(err)    }    fmt.Println("TOKEN is:", token.Valid)    // do something with decoded claims    for key, val := range claims {        fmt.Printf("Key: %v, value: %v\n", key, val)    }這是輸出:-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvs97nrY4XqXVJT1Y4AU5xxxTLWXK2H4swuXSEyV75Ylem+f2iF+20xHTZ4jTUBzYmikBuUsm0839T5SDmwEquTBfQIDAQAB-----END PUBLIC KEY-----key is of invalid typeTOKEN is: falseKey: iss, value: https://example.comKey: nbf, value: 1.592797834e+09Key: exp, value: 1.592801434e+09Key: sub, value: 3Key: aid, value: 2Key: fea, value: 0Key: iat, value: 1.592797834e+09Key: aud, value: []Key: jti, value: 7a97a2327e671d2bf01253819fb319d6我觀察到key is of invalid type并且token.valid是false。誰能幫我指出錯誤的代碼以及如何解決這個問題?
查看完整描述

2 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

傳遞[]byte(publicKey)keyFunc錯誤的。

rsa(ie RS256RS512or RS384) 的情況下,您應該返回 a (有關如何實現的更多信息,*rsa.PublicKey請參閱Verfiy()內容)。

ExampleParsePKIXPublicKey() 在此處使用來解析和解碼您的字符串公鑰或如@Dan 所述,您可以使用ParseRSAPublicKeyFromPEM(有關更多信息,請參閱內容)。


查看完整回答
反對 回復 2022-06-13
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

從公鑰中刪除換行符并嘗試一下。

publicKey = "-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAxxxxxxf2iF+20xHTZ4jTUBzYmikBuUsm0839T5SDmwEquTBfQIDAQAB-----END PUBLIC KEY-----"



查看完整回答
反對 回復 2022-06-13
  • 2 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號