Djangorestframework下的自定义登录认证

Djangorestframework下的自定义登录认证

1.自定义认证组件
from rest_framework.authentication import BaseAuthentication
from rest_framework.exceptions import ParseError


class Authentication(BaseAuthentication):
#自定义HTTP状态码
    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:
        	#设置token有效值
            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',
    ),
    # token验证组件
    "DEFAULT_AUTHENTICATION_CLASSES":
        ["users.auth.Authentication", ]
}

开始试一下吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值