Keycloak KeyClope仅在第一次登录时获取Google刷新令牌
我用谷歌的keydape作为身份提供者。我需要从谷歌刷新令牌,以管理用户的日历。以下是我的KeyClope Google IDP设置: 登录后,我根据获取刷新令牌。看起来是这样的:Keycloak KeyClope仅在第一次登录时获取Google刷新令牌,keycloak,google-oauth,google-authentication,google-openid,Keycloak,Google Oauth,Google Authentication,Google Openid,我用谷歌的keydape作为身份提供者。我需要从谷歌刷新令牌,以管理用户的日历。以下是我的KeyClope Google IDP设置: 登录后,我根据获取刷新令牌。看起来是这样的: { "access_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "expires_in": 3599, "refresh_expires_in": 0, "r
{
"access_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"expires_in": 3599,
"refresh_expires_in": 0,
"refresh_token": "YYYYYYYYYYYYYYYYYYYYYYYYYYYY",
"token_type": "Bearer",
"id_token": "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
"not-before-policy": 0,
"scope": "openid https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile",
"accessTokenExpiration": 1593706596
}
现在的问题是,当我第二次登录,然后再次尝试获取刷新令牌时,它消失了:
{
"access_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"expires_in": 3599,
"refresh_expires_in": 0,
"token_type": "Bearer",
"id_token": "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
"not-before-policy": 0,
"scope": "https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid",
"accessTokenExpiration": 1593706782
}
我真的不知道这怎么可能。我想到的一件事是,keydove不尊重subquest登录上的“请求刷新令牌”设置,但我不知道如何验证这一点。这不是keydove错误,而是谷歌规范。
刷新\u令牌
仅在用户首次授权时提供。以下是此行为的文档:
刷新\u令牌
:可用于获取新访问令牌的令牌。刷新令牌在用户撤销访问之前有效。同样,只有在对谷歌授权服务器的初始请求中将access_type参数设置为offline时,此字段才会出现在该响应中。-
如果要再次获取刷新令牌,必须:
刷新\u令牌
(前提是它还包括“access\u type=offline”查询参数