我想在 JACKSON MOURA 代码 sn-p 中添加详细信息并附上解释。
在 settings.py 中,你必须这样做。我没有找到任何好的文档。但它适用于社会认证。现在您不再需要使用管理面板来设置社交身份验证应用程序了。我展示了 Google、Facebook 和 LinkedIn 的示例。它也适用于其他社交应用程序。
SOCIALACCOUNT_PROVIDERS = {
"google": {
"APP": {
"client_id": "<client_id>",
"secret": "<secret>",
},
},
'facebook': {
"APP": {
"client_id": "<client_id>",
"secret": "<secret>",
},
},
"linkedin": {
"APP": {
"client_id": "<client_id>",
"secret": "<secret>",
}
}
}
现在在 view.py 中,您必须创建序列化程序类。一切都会一样。我正在为 Google、LinkedIn 和 Facebook 展示。
class FacebookLogin(SocialLoginView):
adapter_class = FacebookOAuth2Adapter
client_class = OAuth2Client
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)
class GoogleLogin(SocialLoginView):
adapter_class = GoogleOAuth2Adapter
client_class = OAuth2Client
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)
class LinkedInLogin(SocialLoginView):
adapter_class = LinkedInOAuthAdapter
client_class = OAuthClient
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)
现在,后端已准备好从前端获取帖子数据,并将显示如下完美错误。它适用于所有其他社交应用。