django开发-django中实现用户登录认证的几种方式

1.方式一:使用djangorestframework-jwt

1.1 安装

pip install djangorestframework-jwt

1.2 在settings.py中增加如下配置:

django开发-django中实现用户登录认证的几种方式

1.3 在项目的urls.py中增加如下配置:

django开发-django中实现用户登录认证的几种方式

1.4 测试

请求头中不加token时,request user和request.auth的值分别是 AnonymousUser和None。

使用post请求,application/json数据格式的方式请求http://127.0.0.1:8000/token/,加入请求参数:

django开发-django中实现用户登录认证的几种方式

可以获取token字符串:

"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoyLCJ1c2VybmFtZSI6InRlc3QwMiIsImV4cCI6MTU1Mjc4ODEzNSwiZW1haWwiOiIxMjM0NTZAcXEuY29tIn0.v7I-NVBlCBAuTANYt-HnE0thOpip3Svy9b8pXnH49YA"

1.5 访问其他需认证的接口

携带token访问测试接口http://127.0.0.1:8000/test02/时,token在请求头中,参数的key是Authorization,value是“JWT” + 空格 + token字符串。认证成功后request user和request.auth的值分别是 用户名和token字符串。

2.方式二:使用使用jwt和BaseAuthentication

2.1 根据配置生成token:

django开发-django中实现用户登录认证的几种方式

2.2 编写认证类:

django开发-django中实现用户登录认证的几种方式

2.3 调用登录接口获取token:

django开发-django中实现用户登录认证的几种方式

2.4 调用其他需要认证的接口:

django开发-django中实现用户登录认证的几种方式

以上就是django中登录认证的两种实现方式,第一种是使用djangorestframework-jwt自带的方式,第二种是自定义的方式。有兴趣的小伙伴欢迎私信交流。


分享到:


相關文章: