后台设计可能遇到的问题(1)
问题:跨域; 解决方法:同源策略
前端与后端分别是不同的端口,这就涉及到跨域访问数据的问题,因为浏览器的同源策略,默认是不支持两个不同域名间相互访问数据,而我们需要在两个域名间相互传递数据,这时我们就要为后端添加跨域访问的支持。
解决的步骤:在项目后台配置文件中设置:
(1)添加应用:
(2)设置中间件:
(3)添加白名单:设置允许携带cookie
# 白名单
CORS_ORIGIN_WHITELIST = (
'127.0.0.1:8080',
'127.0.0.1:8000',
'localhost:8080',
'www.xxx:8080',
'api.xxxx:8000'
)
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
Session认证机制的缺陷:
假如用户登录时候访问的是服务器1,但是获取信息时访问服务器2 ,由于服务2上没有登录的session信息,所以又得登录,难以得到扩展
(1)作用?:记录用户的登录状态,或者为用户创建身份认证的凭证
(2)Token保存在请求头中,在服务器端一般Access-Control-Allow-Origin: *。
(3)JWT的结构(三部分)
①头部(header)json数据格式:
{
‘typ’: ‘JWT’,
‘alg’: ‘HS256’
}
②载荷(payload):存放有效的信息: 标准中注册的声明
公共的声明 \ 私有的声明
③签名:需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密,然后就构成了jwt的第三部分
secret是保存在服务器端的,jwt的签发生成也是在服务器端的,secret就是用来进行jwt的签发和jwt的验证,所以,它就是你服务端的私钥,
一般是在请求头里加入Authorization,并加上Bearer标注:
fetch(‘api/user/1’, {
headers: {
‘Authorization’: 'Bearer ’ + token
}
})
上一篇: vue axios跨域请求
推荐阅读
-
后台设计可能遇到的问题(1)
-
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法_PHP教程
-
WampServer搭建php环境可能遇到的问题,wampserverphp
-
WampServer搭建php环境可能遇到的有关问题
-
WampServer搭建php环境可能遇到的问题,wampserverphp
-
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法_php技巧
-
ASP开发中可能遇到的错误信息中文说明大全(整理收集)第1/2页
-
Sublime text3 实现C语言编译运行以及过程中可能遇到的问题
-
MySQL 初学者可能会遇到的问题_MySQL
-
pip2 python2.7 安装opencv-python cv2遇到问题的可能解决办法 skbuild list(pattern)