问题描述
我正在尝试将 Google Login 用于具有 React 前端和 Django 后端的 Web 应用程序。在前端,我使用 react-google-login
包来处理所有身份验证逻辑。在后端,我有 django-allauth
和社交登录适配器以及 Django Rest Framework (DRF)。
一切正常(即我得到了一个访问令牌并且可以很好地向 DRF 发出 API 请求),除了以下内容:
- 令牌仅在 1 分钟内有效(准确地说是 3599 秒 - 见附图)
- 我似乎在任何地方都找不到刷新令牌。
我不知道该往哪里看:
- 将会话延长到 1 分钟以上
- 刷新以便我可以获得另一个访问令牌
需要注意的一件奇怪的事情是,当令牌过期时,刷新浏览器似乎会自动给我一个新令牌,我可以再次发出 API 请求。
这是我当前的反应代码:
<GoogleLogin
clientId={process.env.REACT_APP_GOOGLE_OAUTH_CLIENT_ID}
buttonText="Continue with Google"
onSuccess={handleGoogleOAuthResponse}
onFailure={handleGoogleOAuthResponse}
isSignedIn={true}
/>
解决方法
expires_in=3599
表示令牌将在 1 小时后过期。这里提到的时间以秒为单位。 1 分钟 = 60 秒。 1 小时 = 60 分钟。此外,1 小时 = 3600 秒。
id_token
此处用作系统的刷新令牌。