DjangoRestFramework【Session认证】

1.在settings中配置session认证

# 全局认证 优秀级高于视图类中的配置
    'DEFAULT_AUTHENTICATION_CLASSES': [
        # 默认首先使用session认证
        'rest_framework.authentication.SessionAuthentication',
        # cookie与session cookie是存储在浏览器上的非敏感数据
        # session是存储在服务器上的敏感数据 但是session离不开cookie 因为session的sessionid存储在浏览器中
        # 发送请求时 需要在Cookie中携带sessionid  csrftoken 在header 在header中携带X-CSRFToken 值可以在浏览器登录用户之后找到cookie复制


        # 默认首先使用basic认证 用户名密码
        # 发起请求时 可以将用户名密码 进行编码 写入AUTHORIZATION中 然后发起请求
        # 处理请求 将请求中携带的 类似于Basic cm9vdDoxMjM0NTY 进行解码处理得到对应的用户 获取用户成功,认证成功 获取失败,认证失败
        'rest_framework.authentication.BasicAuthentication'
    ],

每次用户登录之后,在数据库中的session表中就会生成一张session表,保存用户的session信息.
在这里插入图片描述

2.在浏览器中查看生成的session认证的相关信息

在这里插入图片描述
在浏览器中按F12,按照图中的点击顺序,登录之后就可以看到csrftokensessionid,他们都会随着请求头传递到Django中进行验证,验证完之后,他们就会进行授权验证,如果该用户没有达到权限,则请求也不会成功.

3.在Apifox或者postman中使用session认证

在这里插入图片描述
首先将csrftokensessionid保存到cookie中
在这里插入图片描述
然后将在header中写一个X-CSRFtoken,他的值就是csrftoken的值.
此时不用登入,就可以直接发送post请求,因为Django会将csrftokensessionid一起解码成usernamepassword.
上面整个过程就是session认证的流程.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值