django rest 框架中用于社交登录的 Firebase 身份验证

时间:2021-02-05 03:30:53

标签: django firebase django-rest-framework

我们正在开发使用 django rest 框架作为后端的 react native 应用程序。我们希望使用 firebase auth 进行社交登录。 但在这种情况下,我将如何在 django rest 框架中验证令牌?

对于正常的电子邮件登录,我们使用 jwt 身份验证。

现在我不知道如何为通过我们的应用程序注册的用户使用 JWT 身份验证,并为使用社交登录(如 django rest 框架中的 google、FB 和 Apple)登录的用户使用 firebase 身份验证?

1 个答案:

答案 0 :(得分:0)

我已将 django-allauth 模块与 REST API 和令牌身份验证一起使用。因此,根据我在用户使用社交平台注册时的经验,您只需要编写自定义 CustomLoginView 即可覆盖现有方法 SocialLoginView
调用 post 方法后,您可以自定义代码并使用 JWT-Token 生成令牌并将该令牌传递给用户。例如请找到下面的代码

class CustomLoginView(SocialLoginView):
    """
    To Customize social login response
    """
    def post(self, request, *args, **kwargs):
        response = super().post(request, *args, **kwargs)
        user = self.user
        # check what you get in response from parent class post method.
        data['user']['token'] = # Write your logic to get Token for user
        return Response(data['user'])

因此,一旦用户拥有 JWT-tokens,他们就可以在使用应用程序时使用它。 有关详细信息,请参阅 https://dj-rest-auth.readthedocs.io/en/latest/