在 FusionAuth 中使用授权代码授予请求访问令牌调用时未获得刷新令牌以响应

Didn't get the refresh token in response of access token call with Authorization Code Grant Request in FusionAuth

我正在使用 FusionAuth 进行身份验证。我在 FusionAuth 中创建了一个应用程序。它配置了 oAuth。

http://localhost:9011/oauth2/authorize?access_type=offline&prompt=consent&response_type=code&client_id=9ecc54b7-6f79-4105-a208-ca61e6157b58&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fipos%2Frest%2FfusionAuth%2FcallBack

这是我对 FusionAuth 登录页面之一的授权url。

一旦我点击 link 并输入用户名和密码,我就会在我的 java 球衣 api 中收到配置回叫 url 的回叫。

我在回电请求中得到以下详细信息。

code - dZgq5Xd0YmAQXZ2JIzkih832iojimgLUPwT7yoH9-TY

locale - en_US

userState - AuthenticatedNotRegistered

我在这里使用 Scribe Java 库 进行 OAuth 身份验证

我通过给定的授权代码调用 Scribe java 库来获取访问令牌,grant_type 是 authorization_code。

这里调用成功,我在响应中得到以下详细信息。

{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRRZTA1Uk1vN19oVjZUUnpLVUQ1aXpRU2NSOCJ9.eyJhdWQiOiI5ZWNjNTRiNy02Zjc5LTQxMDUtYTIwOC1jYTYxZTYxNTdiNTgiLCJleHAiOjE1Nzc3MTg0NjgsImlhdCI6MTU3NzcxODM0OCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3ZWE3OWRhZi1hZjExLTQ1MTUtODljYS1iOGFjYTFjN2I5YTEiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJQQVNTV09SRCIsImVtYWlsIjoiZGhhdmFsYmhvb3Q5M0BnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoiZGhhdmFsYmhvb3QifQ.eA0Xi6nEZhWaTMd-P26ESdE3NsyXNRNVBKBdBvHxvzfHgXYJiN2pf-16mY8JK-4-1g3vZF7Cwv-SkP4iZAIJCYYc3uBW8Qlcjjn9cyi7_RggBBBsErcs2acRIt-D5NpnVJfkxHwGAs9fO6a2Win98GGYyv1nzBG9OhWkyZJTy4QxzlgXNrkQIzTuzRwLkRFzKCT95pqfsOYb_MXPuAksg5q1SHIj8qtbO7EO-vMbpmiok1C-Wflbiq2X_tq17QBKbO4JAMLm9_pCZse1tqLyNP4fIh3VHTz7OdbbXvug2Tpk_yTWLVL_29XC87-91R5iXeezLjADkdi1yXMUdHioOw",
  "expires_in": 119,
  "token_type": "Bearer",
  "userId": "7ea79daf-af11-4515-89ca-b8aca1c7b9a1"
}

在这里,我没有得到refresh_token,无论如何,用户首次登录或无论如何。 这是 JWT 令牌,我已将到期时间缩短为 120 秒。

在应用程序 OAuth 设置中,我启用了 生成刷新令牌 选项。

这里唯一的问题是,我没有收到刷新令牌。 帮我解决这个问题。

谢谢。

要通过授权代码授予获得刷新令牌,您需要请求 offline_access 范围。

https://fusionauth.io/docs/v1/tech/oauth/endpoints#authorization-code-grant-request

您可以按如下方式修改您的请求(添加换行符以提高可读性)

http://localhost:9011/oauth2/authorize?
scope=offline_access
&prompt=consent
&response_type=code
&client_id=9ecc54b7-6f79-4105-a208-ca61e6157b58
&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fipos%2Frest%2FfusionAuth%2FcallBack

附带说明一下,添加 prompt=consent 没问题,但不会影响请求,因为这在 FusionAuth 中尚不可用。如果这是您希望在即将发布的版本中看到的内容,请支持功能请求。 https://github.com/FusionAuth/fusionauth-issues/issues/411