管理员登录 浏览器的同源策略

管理员登录

浏览器的同源策略

在浏览器中,用js发起ajax请求,请求另外一个服务器时,浏览器认为访问不同的源,则禁止访问
浏览器向不同源的服务器发起一个options请求,根据响应报文来确定是否继续发起真实的请求
跨域CORS

跨域:a域名下的js访问b域名下的接口
未配置cors时,options请求的响应报文头
HTTP/1.0 404 Not Found
Date: Tue, 04 Jun 2019 07:11:39 GMT
Server: WSGIServer/0.2 CPython/3.5.2
Content-Length: 8332
Content-Type: text/html
X-Frame-Options: SAMEORIGIN
配置cors时,options请求的响应报文头
HTTP/1.0 200 OK
Date: Tue, 04 Jun 2019 07:53:24 GMT
Server: WSGIServer/0.2 CPython/3.5.2
Content-Type: text/html; charset=utf-8
Vary: Origin

Access-Control-Allow-Origin: http://127.0.0.1:8080
Access-Control-Allow-Methods: DELETE, GET, OPTIONS, PATCH, POST, PUT
Access-Control-Allow-Headers: accept, accept-encoding, authorization, content-type, dnt, origin, user-agent, x-csrftoken, x-requested-with
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 86400
浏览器检测到跨域请求时,会发起options请求,浏览器接收到响应后,会根据响应报文头中的信息进行判断,决定是否继续发起后续请求,判断标准为Access-Control-Allow-…
浏览器的同源策略是什么意思?
当浏览器检测到js的ajax请求跨域时,会阻止这个请求
浏览器在同源策略的机制下做了什么?
发起options请求
根据响应报文头进行验证
如果允许则发起后续的请求
如果不允许则停止请求
服务器应该如何响应跨域请求?
响应options请求,在响应报文头中加入信息
Access-Control-Allow-****
JWT

官方网站:https://jwt.io/
user_id=1,密钥=123
HaXuqZKNsHZwO9YeAUJA8WizoGaxsAVPp05YiU6lerg
user_id=2,
密钥=abc===》F0QOpCT8DoE78KGB9CtSLbSVx1dYTHvpvRkp7fr8gKg
密钥=123===》vvN0kOZLLa6HZerGVfa2dtoDxDDSq3ns2o6lKIAjcV4
jwt如何保证数据安全有效:密钥
验证:服务器接收到jwt后,会取出header、payload,与密钥一起进行计算,得到新的签名,与接收到的签名进行对比,如果相同,则认为身份有效,如果不同,则认为用户未登录
jwt是什么?
json web token
构成:header、payload、signature
header===>加密算法、类型,固定不变
payload===>用户身份信息
signature===>加密算法(header.payload,密钥)
如何保证数据安全有效?
接收请求报文中的jwt字符串,分别取出header、payload、signature
以header、payload、密钥计算,得到新的signature2
signature==signature2则认为身份有效,解密payload部分,获得用户信息
如果不相等,则认为身份无效,处于未登录
drf-jwt

安装包
配置
注册路由
问题1:响应体中只有token,没有用户名
问题2:jwt的载荷中不包含email
问题3:jwt的视图如何进行验证,需要is_staff=True
思路:读官方文档,读源码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值