我们正在开发一个依赖 PSA (0.2.1) 进行 google oauth2(离线)身份验证的项目。不知何故,我们丢失了一些用户的刷新 token ,我们希望强制这些用户重新进行身份验证,以便我们可以从 Google 获取新的刷新 token
我们都尝试过:
- 使用/diconnect/google-oauth2 断开这些用户的连接,我们遇到了 NotAllowedToDisconnect 异常,即使从
SOCIAL_AUTH_DISCONNECT_PIPELINE
中删除social.pipeline.disconnect.allowed_to_disconnect
后,我们也没有得到任何结果异常,但是当用户重新进行身份验证时,Google 响应中没有 refreh_token - 将approval_prompt=force添加到“account:social:begin”网址,但不会返回refresh_token
任何想法都将受到高度赞赏。
更新:我们尝试使用 {% url 'account:social:begin' 'google-oauth2' %}?approval_prompt=force&next=/
强制approval_prompt对于某些用户(缺少 token ),但它似乎对 google oauth 没有影响。
谢谢
最佳答案
使用此设置可以解决问题:
SOCIAL_AUTH_GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = {
'access_type': 'offline',
'approval_prompt': 'force'
}
关于django - 强制谷歌通过 python 社交身份验证刷新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26782827/