后台设计可能遇到的问题(1)

    xiaoxiao2025-01-14  14

    问题:跨域; 解决方法:同源策略

    前端与后端分别是不同的端口,这就涉及到跨域访问数据的问题,因为浏览器的同源策略,默认是不支持两个不同域名间相互访问数据,而我们需要在两个域名间相互传递数据,这时我们就要为后端添加跨域访问的支持。 解决的步骤:在项目后台配置文件中设置: (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 } })

    最新回复(0)