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

如何通过 django-allauth 使用 Google One Tap 登录?

如何解决如何通过 django-allauth 使用 Google One Tap 登录?

Google 一键登录不使用 OAuth 流程。我的问题是如何将其集成到使用 allauth 进行身份验证的 django 应用程序中?

我找到了一个教程,通过该教程,您可以通过一键登录 https://developers.onelogin.com/quickstart/google-ontap-with-onelogin

获取电子邮件、姓名等基本详细信息

如何集成才能完成登录

解决方法

您可以将其与此视图集成:

from allauth.socialaccount.providers.google.views import GoogleOAuth2Adapter
from rest_auth.registration.views import SocialLoginView

from rest_auth.registration.serializers import SocialLoginSerializer


class GoogleLogin(SocialLoginView):
    adapter_class = GoogleOAuth2Adapter
    serializer_class = SocialLoginSerializer

    def get_serializer(self,*args,**kwargs):
        serializer_class = self.get_serializer_class()
        kwargs['context'] = self.get_serializer_context()
        return serializer_class(*args,**kwargs)

并在您的 settings.py 文件中添加您的 google auth 密钥,如下所示:

SOCIALACCOUNT_PROVIDERS = {
    'google': {
        "APP": {
            "client_id": env.str("GOOGLE_CLIENT_ID",""),"secret": env.str("GOOGLE_SECRET_KEY",},}

重要提示:以上视图模型期望 POST 方法中的有效负载,并且一旦用户通过 Google 身份验证,您就会从 oauth2 响应中找到那些有效负载。

我不知道你的前端是什么,但是你可以找到前端相关的SDK,使用响应数据发送payload就可以了。事情比你想象的要容易

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