先導入要用到的類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