在 django 中使用 firebase 进行身份验证时如何绕过 drf 令牌身份验证?

How can I bypass drf Token Authentication when using firebase for authentication in django?

我需要使用我的 django 中的 firebase 登录用户 app.I 已经完成了我认为我需要做的事情,但我似乎遗漏了 something.I 我正在使用 pyrebase library.I 在 firebase 上创建了一个用户,现在我需要让他们登录。 我在 Postman 上发布了电子邮件和密码,我得到了 'idToken' 和 'refreshToken',这意味着用户在 firebase.But 上获得了身份验证这仅在我使用 drf 令牌身份验证时有效(DEFAULT AUTH 类) 和先前在 django admin 上创建的用户的授权令牌。我缺少什么以便我可以在没有 drf 令牌身份验证的情况下对用户进行身份验证?

views.py

config = {
  "apiKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "authDomain": "xxxxx.firebaseapp.com",
  "databaseURL": "https://xxxxxxxxx-default-rtdb.firebaseio.com",
  "storageBucket": "xxxxxxxxx.appspot.com",
}

firebase = pyrebase.initialize_app(config)

auth = firebase.auth() 

class Auth(APIView):
   
    def post(self, request, format=None):
        email = "xxxx@gmail.com"
        password = "xxxx"
    
        user = auth.sign_in_with_email_and_password(email, password)

        return Response(user) 

Settings.py

REST_FRAMEWORK = {
    "DEFAULT_AUTHENTICATION_CLASSES": (
        "rest_framework.authentication.TokenAuthentication",
    ),
    "DEFAULT_PERMISSION_CLASSES": ("rest_framework.permissions.IsAuthenticated",),
}

是的,基本上,您在任何身份验证视图中都不需要任何授权。由于您的全局默认值为 IsAuthenticated,您需要覆盖视图中的 permission_classes

class Auth(APIView):
    permission_classes = []

    def post(self, request, format=None):
        ...