问题标签 [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.
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
go - 如何覆盖 DefaultHTTPErrorHandler 格式的消息
我正在使用 Echo 框架。
如何将此格式响应更改为我自己的格式,它来自 JWT 库https://github.com/dgrijalva/jwt-go的错误
我想改变这样的事情
我找不到如何覆盖DefaultHTTPErrorHandler
这个 customHttpErrorHandler
go - 无需验证即可解码 JWT 并查找范围
我需要解码我的 JWT 令牌并检查范围是否是“医生”。
我对 GO 知之甚少,但我只需要在我的应用程序中编写一个小片段来扩展现有应用程序,因此它需要用 GO 编写。
这是我尝试解码令牌并检查“Doctor”是否在解码令牌中,因为我无法独占访问范围。
它在我的应用程序之外运行良好,但是当在我的应用程序内部运行时,它很奇怪,并<nil> map[] <nil> false
在声明的位置返回这个,但是当在应用程序外部运行时,它给了我
多亏了 devdotlog,我才能通过这个更改来实现它:
go - 如何在 Go 中测试验证 JWT 路由
我想通过 JWT 身份验证测试受保护的路由。
已经尝试接收响应并尝试传递令牌,但它仅返回 401 作为代码响应。
现在当我运行 go test 时,我只得到代码 401,但想得到 HTTP 响应代码 200。
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 肯定没那么复杂吧?
json - 如何检查某个值的 JWT 的角色声明(值数组)?
我正在使用 Golang 和 Gin 框架从客户端发送的 JWT 中获取声明。但我无法将提取的角色与字符串进行比较。
当我尝试获取该值时,它会返回,[test-app]
但实际上我希望该值为"test-app"
和我的有效载荷
如何从 json 声明中获取值并使用它与字符串进行比较/验证?
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
go - 在循环内创建 JWT 令牌时在 jwt-go 中获取相同的令牌
我正在使用 jwt-go 库创建 jwt 令牌。后来写了一个脚本来进行负载测试。我注意到当我发送许多并发请求时获得相同的令牌。要检查有关此的更多信息,我在 for 循环中创建了令牌,结果是相同的。
我使用的库是https://github.com/dgrijalva/jwt-go,go版本是 1.12.9。
rest - JWT-GO 错误 4 和来自另一个 api url 的令牌验证
我在 golang 中使用包“github.com/dgrijalva/jwt-go”来验证 api 命中。
创建 jwt 令牌的代码是:
以下是使用此令牌的步骤:
- 第一次登录 api 命中,我们调用上面的方法来生成令牌并在 api 响应中返回这个令牌。
之后,另一个 api 在其标头中使用“Bearer”字符串包含此标记。我们解码此令牌并通过以下代码对其进行身份验证:
/li>
现在假设令牌被解码为 url:http: //SOMEDOMAIN.COM/api/v1/SOMEAPI
从这个 api 我发出了另一个 curl 命令,格式如下:
此命令命中另一个不同的 api,但使用相同的凭据(如令牌)与从登录 api 创建的凭据相同。
具有不同 url 的两个 api 都托管在同一服务器上,但 golang 项目文件夹不同。
现在这个包不验证令牌并给出以下错误:
在这种情况下,我正在寻找错误代码 4 的含义。
谁能解释一下它的含义Error: 4
以及为什么它在不同的api url上表现得这样?
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。