[英]How should I go building login serializer & View which uses DRF for Token Authentication?
[英]How can I get the Authentication class (or class name) which is succeeded during authentication in DRF View?
假设我认为
from rest_framework import viewsets
class SampleViewset(viewsets.ModelViewSet):
serializer_class = SampleSerializer
queryset = Sample.objects.all()
authentication_classes = (FirstAuthClass, SecondAuthClass, ThirdAuthClass)
def get_success_auth_class(self, request, *args, **kwargs):
# What logic should I use here ????
return success_auth_class
然后,应该在get_success_auth_class()
方法中使用什么逻辑?
换句话说, 如何获得在DRF视图中进行身份验证时成功的身份验证类(或类名)?
该DRF Request类有一个属性叫做successful_authenticator
这将返回被用于验证请求,或认证实例类的实例None
。
class SampleViewset(viewsets.ModelViewSet):
serializer_class = SampleSerializer
queryset = Sample.objects.all()
authentication_classes = (FirstAuthClass, SecondAuthClass, ThirdAuthClass)
def get_success_auth_class(self, request, *args, **kwargs):
for auth_class in self.authentication_classes:
if isinstance(request.successful_authenticator, auth_class):
return auth_class
return None
在这里引用源代码
@property def successful_authenticator(self): """ Return the instance of the authentication instance class that was used to authenticate the request, or `None`. """ if not hasattr(self, '_authenticator'): with wrap_attributeerrors(): self._authenticate() return self._authenticator
参考 :
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.