django Rest Framework 사용자 정의 인증 클래스

1527 단어 django
1.py 파일 만들기 authentications.py(이름 사용자 정의)
2.from rest_framework.authentication import BaseAuthentication
class My Authentication(Base Authentication)을 구축하려면 Base Authentication을 계승해야 합니다.
3. 추상적인 방법을 다시 쓰는 def authenticate(self, request): 다시 써야 하는 반환 값은 하나의 원조(user, None) 사용자가 반환해야 하고 두 번째 반환 값은 사용자 정의로 해야 하며 없으면 None을 채워야 한다.
from django.core.cache import cache
from rest_framework.authentication import BaseAuthentication
from rest_framework.response import Response

from index.models import BbsUser


class MyAuthentication(BaseAuthentication):
    def authenticate(self, request):
     get       
        # if request.method == "GET":
            # return None
        try:
            token=request.query_params.get('token')
            if not token:
                raise AuthenticationFailed('   ')
               
            uid=cache.get(token)
            if not uid:
                raise AuthenticationFailed('     ,     ')

            user=BbsUser.objects.filter(uid=int(uid))
            if not user:
                raise AuthenticationFailed('     ')
            return user,None
        except:
            raise AuthenticationFailed('    ,     ')

국부 인증
#   
authentication_classes = MyAuthentication,

글로벌 인증
#settings 
REST_FRAMEWORK = {
    # 'DEFAULT_AUTHENTICATION_CLASSES': (
    #     'App.autentications.MyAuthentication',
    # )
    #}

좋은 웹페이지 즐겨찾기