go jwt ValidationKeyGetter 不编译

标签 go jwt jwt-go

我是新来的。我正在尝试使用 go 和 jwt 设置一个安全的网络服务器,但我无法编译它:

mw := jwtmiddleware.New(jwtmiddleware.Options{
        ValidationKeyGetter: func (token *jwt.Token) (interface{}, error) {
            return mySigningKey, nil
        },
        SigningMethod: jwt.SigningMethodHS256,
    })

但我只收到以下错误(来自编译器和分析器):

cannot use func literal (type func(*"webserver/vendor/github.com/dgrijalva/jwt-go".Token) (interface {}, error)) as type "github.com/dgrijalva/jwt-go".Keyfunc in field value   

我曾尝试将其设为单独的命名函数,但这没有帮助。 jwt库显示

type Keyfunc func(*Token) (interface{}, error)

因此,它应该与签名匹配。包括 auth0.com 在内的几个在线示例中的代码是相同的。

我已经成功地运行了更简单的 go 程序,包括提供一个简单的网页,所以编译器工作正常。

在 ubuntu 18.04 上运行最新稳定版本的 go 和软件包(几天前下载并安装)。谢谢

最佳答案

似乎该软件包不在 vendor/github.com 中。我做了以下事情:

cp -R ../github.com/auth0 vendor/github.com/auth0

现在可以编译了。

关于go jwt ValidationKeyGetter 不编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52685908/

相关文章:

security - 使用 JWT 进行应用身份验证和授权

angular - Nebular - 登录后未正确获取 token 有效负载

loops - 摆脱无用的返回语句

logging - 如何在记录到文件时禁用 logrus 中的字段名称

golang Unusual Go Construct : Creating reusable Name: name := name . ... 一些东西

go - 将字节数组的一部分转换为 uint16 的最简单方法

node.js - 在node.js中解密使用A128CBC-HS256加密的JWT

go - 使 jwt 编码更快

带有 Martini 的 GoLang JWT 抛出 <invalid Value>?

go - 我有公钥和 JWT,如何检查它在 Go 中是否有效?