猿问

使用 jwt-go 解析令牌

谁能告诉我为什么以下(来自https://github.com/dgrijalva/jwt-go)示例不起作用?


token, err := jwt.Parse(myToken, func(token *jwt.Token) ([]byte, error) {

    return myLookupKey(token.Header["kid"])

})


if err == nil && token.Valid {

    deliverGoodness("!")

} else {

    deliverUtterRejection(":(")

}

我收到一条错误消息 cannot use func literal (type func(*jwt.Token) ([]byte, error)) as type jwt.Keyfunc in argument to jwt.Parse


我尝试使用来自几个不同 jwt-go 示例的代码,但总是以同样的错误告终。


慕村9548890
浏览 262回答 2
2回答

蝴蝶刀刀

函数Parse期望type Keyfunc func(*Token) (interface{}, error)您需要 return interface{},而不是byte[]在您的函数文字中。(也许使用 abyte.Buffer来包装byte[],然后您可以阅读“将任意 Golang 接口转换为字节数组”)Gert Cuykens在第36 期的评论中指出:commit e1571c8应该更新了示例。其他像这个要点的例子也需要更新。
随时随地看视频慕课网APP

相关分类

Go
我要回答