Django Restful(DRF)框架学习(三)JWT认证

REST framework JWT 是django的一个插件

  1. 安装依赖包:pip install djangorestframework-jwt
  2. 配置settings.py
  • 有两种可供选择的模式,一是只读模式,二是用户模式。
  • 只读模式模式下:所有api都可以被访问,但是未登陆用户只能查看。例如新闻网站中人人都可以看新闻,但是要发表评论需要登录。
  • 用户模式下:所有api的访问都必须经过认证后才能操作,例如教务系统。
  • 在settings.py中进行设置
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
    #   设置访问权限为只读
    'rest_framework.permissions.IsAuthenticatedOrReadOnly',
    #   设置访问权限为必须是用户
    # 'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
    'rest_framework.authentication.BasicAuthentication',

#可以用session保持会话   'rest_framework.authentication.SessionAuthentication',
    ),
}
  1. 配置路由地址:
  • 在总路由urls.py下导入包from rest_framework_jwt.views import obtain_jwt_token,verify_jwt_token
  • 然后添加代码
urlpatterns+=[
    url('auth/',obtain_jwt_token),
    url('auth/',include('rest_framework.urls',
                        namespace='rest_framework')),
]
  1. 进行测试发现允许的请求方式已经没有put、delete和post的按钮了
    在这里插入图片描述

  2. 但是get请求正常访问
    在这里插入图片描述

  3. 通过http://127.0.0.1:8000/auth/log in 之后拿到token
    在这里插入图片描述>eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InR5c29uIiwidXNlcl9pZCI6MSwiZW1haWwiOiJjaGluYW1lbjUyMEBxcS5jb20iLCJleHAiOjE1NDk1NDAzODV9.BYhY37b7Pyb2O3Gtsnb86Nb4nz79DglBNu6l_5-teHs

  4. 使用受到保护的方法时,需要在请求头上带上token,具体的格式是:Authorization JWT yourtoken
    在这里插入图片描述

  5. 这种认证是basic auth的一种
    在这里插入图片描述
    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值