问题标签 [jwt-go]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
302 浏览

go - go jwt ValidationKeyGetter does not compile

I am new to go. I am trying to set up a secure webserver using go and jwt, but I cannot get this to compile:

but I only get the following error (from the compiler and the analyzer):

I have tried making it a separate named func but that didn't help. The jwt library shows

so, it should match the signature. The code is the same in several online examples including auth0.com.

I have had success running simpler go programs, including serving a simple web page, so the compiler is working correctly.

Running on ubuntu 18.04 with the newest stable version of go and packages (downloaded and installed a few days ago). Thanks

0 投票
1 回答
1324 浏览

go - 如何覆盖 DefaultHTTPErrorHandler 格式的消息

我正在使用 Echo 框架。

如何将此格式响应更改为我自己的格式,它来自 JWT 库https://github.com/dgrijalva/jwt-go的错误

我想改变这样的事情

我找不到如何覆盖DefaultHTTPErrorHandler

这个 customHttpErrorHandler

0 投票
1 回答
4387 浏览

go - 无需验证即可解码 JWT 并查找范围

我需要解码我的 JWT 令牌并检查范围是否是“医生”。

我对 GO 知之甚少,但我只需要在我的应用程序中编写一个小片段来扩展现有应用程序,因此它需要用 GO 编写。

这是我尝试解码令牌并检查“Doctor”是否在解码令牌中,因为我无法独占访问范围。

它在我的应用程序之外运行良好,但是当在我的应用程序内部运行时,它很奇怪,并<nil> map[] <nil> false在声明的位置返回这个,但是当在应用程序外部运行时,它给了我

多亏了 devdotlog,我才能通过这个更改来实现它:

0 投票
2 回答
2110 浏览

go - 如何在 Go 中测试验证 JWT 路由

我想通过 JWT 身份验证测试受保护的路由。

已经尝试接收响应并尝试传递令牌,但它仅返回 401 作为代码响应。

现在当我运行 go test 时,我只得到代码 401,但想得到 HTTP 响应代码 200。

0 投票
6 回答
6922 浏览

amazon-web-services - 如何在 Go 中验证来自 AWS Cognito 的 JWT 令牌?

如何验证从 Amazon Cognito 收到的 JWT 并从中获取信息?

我在 Cognito 中设置了 Google 身份验证,并将重定向 uri 设置为命中 API 网关,然后我收到一个代码,我将其发布到此端点:

https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html

以 RS256 格式接收 JWT 令牌。我现在正在努力验证和解析 Golang 中的令牌。我尝试使用 jwt-go 对其进行解析,但它似乎默认支持 HMAC,并在他们推荐使用前端验证的地方读取。我尝试了其他一些软件包并遇到了类似的问题。

我在这里遇到了这个答案:Go Language and Verify JWT,但假设代码已经过时,正如刚才所说的那样panic: unable to find key

jwt.io 可以轻松解码密钥,并且可能也可以验证。我不确定亚马逊生成令牌时公钥/密钥在哪里,但据我了解,我也需要使用 JWK URL 进行验证?我找到了一些 AWS 特定的解决方案,但它们似乎都有数百行长。Golang 肯定没那么复杂吧?

0 投票
1 回答
1761 浏览

json - 如何检查某个值的 JWT 的角色声明(值数组)?

我正在使用 Golang 和 Gin 框架从客户端发送的 JWT 中获取声明。但我无法将提取的角色与字符串进行比较。

当我尝试获取该值时,它会返回,[test-app] 但实际上我希望该值为"test-app"

和我的有效载荷

如何从 json 声明中获取值并使用它与字符串进行比较/验证?

0 投票
1 回答
1873 浏览

go - 在 jwt-go 中解析 JWT Auth 令牌时,密钥的类型无效

我在 GoLang API 中设置安全中间件,似乎一切设置正确,但我收到错误“密钥类型无效”。

我已经确认我的签名算法是 RS256 并且配置了中间件选项 @SigningMethod: jwt.SigningMethodRS256

我有一个有效的令牌……中间件中的所有其他内容都通过了。

中间件中此错误的入口点是 jwt.ParseRSAPrivateKeyFromPEM 方法。

我已经在 github.com/dgrijalva/jwt-go/rsa.go 包中隔离了错误:第 62 行的验证()是被抛出的 ErrInvalidKeyType。到目前为止,所有参数似乎都是可靠和适当的(例如 m|signingString|signature|key),但是这个 key.(*rsa.PublicKey) 失败了……在我的调试器(GoLand)中,我检查了 *rsa 并得到了响应'找不到 rsa 的符号值'...</p>

请注意……如果还不是很明显……我对 GoLang 很陌生

- - - 更新 - - -

所以在最细粒度的层面上,恐慌从 go/1.12.8/libexec/src/crypto/rsa/rsa.go:49 开始

pub 被视为 nil 指针取消引用。我将其追溯到 mux -->

加密/rsa.VerifyPKCS1v15(...) /usr/local/Cellar/go/1.12.8/libexec/src/crypto/rsa/pkcs1v15.go:275

github.com/dgrijalva/jwt-go.(*SigningMethodRSA).Verify(...) /Users/me/Sandbox/src/github.com/dgrijalva/jwt-go/rsa.go:73

github.com/dgrijalva/jwt-go.(*Parser).ParseWithClaims(...) /Users/me/Sandbox/src/github.com/dgrijalva/jwt-go/parser.go:77

github.com/dgrijalva/jwt-go.(*Parser).Parse(...) /Users/btschirhart/Sandbox/src/github.com/dgrijalva/jwt-go/parser.go:20

github.com/dgrijalva/jwt-go.Parse(...) /Users/me/Sandbox/src/github.com/dgrijalva/jwt-go/token.go:89

github.com/auth0/go-jwt-middleware.(*JWTMiddleware).CheckJWT(...) /Users/me/Sandbox/src/github.com/auth0/go-jwt-middleware/jwtmiddleware.go:203

github.com/auth0/go-jwt-middleware.(*JWTMiddleware).Handler.func1(...) /Users/me/Sandbox/src/github.com/auth0/go-jwt-middleware/jwtmiddleware.go: 110

net/http.HandlerFunc.ServeHTTP(...) /usr/local/Cellar/go/1.12.8/libexec/src/net/http/server.go:1995

github.com/gorilla/mux.(*Router).ServeHTTP(...) /Users/me/Sandbox/src/github.com/gorilla/mux/mux.go:210 +0xe3

0 投票
2 回答
623 浏览

go - 在循环内创建 JWT 令牌时在 jwt-go 中获取相同的令牌

我正在使用 jwt-go 库创建 jwt 令牌。后来写了一个脚本来进行负载测试。我注意到当我发送许多并发请求时获得相同的令牌。要检查有关此的更多信息,我在 for 循环中创建了令牌,结果是相同的。

我使用的库是https://github.com/dgrijalva/jwt-go,go版本是 1.12.9。

0 投票
1 回答
320 浏览

rest - JWT-GO 错误 4 和来自另一个 api url 的令牌验证

我在 golang 中使用包“github.com/dgrijalva/jwt-go”来验证 api 命中。

创建 jwt 令牌的代码是:

以下是使用此令牌的步骤:

  1. 第一次登录 api 命中,我们调用上面的方法来生成令牌并在 api 响应中返回这个令牌。
  2. 之后,另一个 api 在其标头中使用“Bearer”字符串包含此标记。我们解码此令牌并通过以下代码对其进行身份验证:

    /li>

现在假设令牌被解码为 url:http: //SOMEDOMAIN.COM/api/v1/SOMEAPI

从这个 api 我发出了另一个 curl 命令,格式如下:

此命令命中另一个不同的 api,但使用相同的凭据(如令牌)与从登录 api 创建的凭据相同。

具有不同 url 的两个 api 都托管在同一服务器上,但 golang 项目文件夹不同。

现在这个包不验证令牌并给出以下错误:

在这种情况下,我正在寻找错误代码 4 的含义。

谁能解释一下它的含义Error: 4以及为什么它在不同的api url上表现得这样?

0 投票
2 回答
204 浏览

api - ItunesConnectApi JWT

我正在尝试使用 App Store Connect API。根据文档,首先我尝试生成 JWT 令牌。这是golang中的代码:

AuthKey.p8 - 来自https://appstoreconnect.apple.com/access/api的 p8 私钥

似乎 jwt lib 不能在签名键上使用这个 p8,所以我收到错误: key is of invalid type

也许有人已经有同样的问题?或者有其他语言的例子?

UPD: 在此建议之后,我已将代码更新为:

并获得 JWT 令牌,但是当我尝试使用它时,它从苹果 api 获得了 401。