问题描述
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就可以了。事情比你想象的要容易