Oauth2令牌请求不包含redirect_uri

我正在尝试使用micronaut中的Bitbucket Oauth设置Oauth2 Authoization Code流。 我已经在我的Mirconaut配置中为auth设置了Github和Bitbucket。

每当我(尝试)使用Bitbucket登录时,都会收到一个redirect_uri不匹配的错误。

{"message":"Internal Server Error: error: invalid_request,errorDescription: redirect_uri does not match,errorUri: null"}

经过研究并启用了一些跟踪日志记录后,我发现访问令牌请求中缺少redirect_uri。

09:33:53.263 [nioEventLoopGroup-1-5] DEBUG i.m.http.client.DefaultHttpClient - Sending HTTP Request: POST /site/oauth2/access_token
09:33:53.263 [nioEventLoopGroup-1-5] DEBUG i.m.http.client.DefaultHttpClient - Chosen Server: bitbucket.org(-1)
09:33:53.264 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - accept: application/json
09:33:53.264 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - Authorization: Basic xxxxxxx
09:33:53.264 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - content-type: application/x-www-form-urlencoded
09:33:53.264 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - host: bitbucket.org
09:33:53.264 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - connection: close
09:33:53.264 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - content-length: 53
09:33:53.264 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - Request Body
09:33:53.264 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - ----
09:33:53.264 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - code=PuaUDFGTmQ4Gh9gJPM&grant_type=authorization_code
09:33:53.264 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - ----
09:33:53.762 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - HTTP Client Response Received for Request: POST https://bitbucket.org/site/oauth2/access_token
09:33:53.762 [nioEventLoopGroup-1-5] TRACE i.m.http.client.DefaultHttpClient - Status Code: 400 Bad Request

每当我使用curl来重新创建呼叫并添加(默认)redirect_uri时,我都会获得适当的访问令牌并能够使用它。

是否可以将redirect_uri添加到令牌请求中?这是错误吗?据我所知,token_uri在令牌请求中是必需的,如果它也存在于先前的授权请求中(请参阅https://tools.ietf.org/html/rfc6749#section-4.1.3

谢谢

丹尼

shuaishuailing9008 回答:Oauth2令牌请求不包含redirect_uri

使用Tornado在Bitbucket上设置OAuth2时遇到此问题。希望它可以帮助您在micronaut中专门找到该问题

如您所知,身份验证分为两个阶段。

  1. 授权(https://bitbucket.org/site/oauth2/authorize)会返回令牌,并且
  2. 授权码授予(https://bitbucket.org/site/oauth2/access_token

它们都在POST正文中带有redirect_uri,但是对于两个调用,它们必须相同。只要它们以Bitbucket的OAuth使用者设置中指定的相同的uri开头(例如https://f.q.d.n/),它们就可以指向更特定的路径(例如https://f.q.d.n/some/specific/end-point

重要的是,两个调用的它们必须相同,否则您将是redirect_uri不匹配的错误。

本文链接:https://www.f2er.com/3153670.html

大家都在问