Djangorestframework下的自定义登录认证
1.自定义认证组件
from rest_framework
.authentication
import BaseAuthentication
from rest_framework
.exceptions
import ParseError
class Authentication(BaseAuthentication
):
ParseError
.status_code
= status
.HTTP_200_OK
def authenticate(self
, request
):
uid
= request
.META
.get
("HTTP_UID")
token
= request
.META
.get
("HTTP_TOKEN")
List
= UserToken
.objects
.filter(status
=1,uid
=uid
,token
=token
).first
()
if List
:
delta
= nowtime
-List
.createDate
if delta
.days
>= 7:
List
.status
=0
List
.save
()
raise ParseError
({"code": 3, "msg": "登录已失效,请刷新页面后登录", "result": ""})
else:
return (uid
, token
)
else:
raise ParseError
({"code": 3, "msg": "验证错误,请刷新页面后登录", "result": ""})
2.settings设置
REST_FRAMEWORK
= {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
),
"DEFAULT_AUTHENTICATION_CLASSES":
["users.auth.Authentication", ]
}
开始试一下吧!
转载请注明原文地址:https://tech.qufami.com/read-6048.html