在 FusionAuth 中使用授权代码授予请求访问令牌调用时未获得刷新令牌以响应
Didn't get the refresh token in response of access token call with Authorization Code Grant Request in FusionAuth
我正在使用 FusionAuth 进行身份验证。我在 FusionAuth 中创建了一个应用程序。它配置了 oAuth。
这是我对 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
我正在使用 FusionAuth 进行身份验证。我在 FusionAuth 中创建了一个应用程序。它配置了 oAuth。
这是我对 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