基於django rest framework作認證組件

先導入要用到的類python

from rest_framework.authentication import BaseAuthentication

from rest_framework.exceptions import AuthenticationFailed

認證類

# 登陸認證
class LuffyAuth(BaseAuthentication):
    def authenticate(self, request):
        # request._request
        ret = {"code": 1000, "data": None}
        token = request.query_params.get("token")
        obj = models.UserAuthToken.objects.filter(token=token).first()
        if not obj:
            raise AuthenticationFailed({'code':1001,'error':'認證失敗'})
        return (obj.user.username,obj)

注意:spa

  • 認證成功返回元組,obj.user是固定的,後面的username取決於你的用戶變中的用戶名字段;rest

  • 認證失敗,拋異常,返回AuthenticationFailed;code

  • 匿名用戶,返回None.blog

使用:你要訪問某個頁面,須要作登陸認證時,就把它加在相應的類下面。  token

 

相關文章
相關標籤/搜索