我希望对JACKSON MOURA的代码片段进行详细说明。
在 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)
现在,后端已经准备好从前端获取文章数据,并将显示完美的错误信息,如下图所示。它将与所有其他社交应用程序一起使用。