微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 react-google-login 和 django-allauth

如何解决使用 react-google-login 和 django-allauth

我正在尝试将 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}
/>

enter image description here

解决方法

expires_in=3599 表示令牌将在 1 小时后过期。这里提到的时间以秒为单位。 1 分钟 = 60 秒。 1 小时 = 60 分钟。此外,1 小时 = 3600 秒。

id_token 此处用作系统的刷新令牌。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。