认证组件authentication
Posted skyoceanchen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了认证组件authentication相关的知识,希望对你有一定的参考价值。
认证组件
authentication
"""
系统:session认证
rest_framework.authentication.SessionAuthentication
ajax请求通过认证:
cookie中要携带 sessionid、csrftoken,请求头中要携带 x-csrftoken
第三方:jwt认证
rest_framework_jwt.authentication.JSONWebTokenAuthentication
ajax请求通过认证:
请求头中要携带 authorization,值为 jwt空格token
自定义:基于jwt、其它
1)自定义认证类,继承BaseAuthentication(或其子类),重写authenticate
2)authenticate中完成
拿到认证标识 auth
反解析出用户 user
前两步操作失败 返回None => 游客
前两步操作成功 返回user,auth => 登录用户
注:如果在某个分支抛出异常,直接定义失败 => 非法用户
"""
自定义认证类:基于jwt
from rest_framework.exceptions import AuthenticationFailed
import jwt
from rest_framework_jwt.authentication import BaseJSONWebTokenAuthentication
from rest_framework_jwt.authentication import jwt_decode_handler
普通自定义认证类
from rest_framework.authentication import BaseAuthentication
def authenticate(self, request):
auth = 从request中得到
user = 从auth中得到
if not user:
return None
return user, auth
以上是关于认证组件authentication的主要内容,如果未能解决你的问题,请参考以下文章