前端知识点提炼:十月份

1、同源cookie限制

问题描述:
  • 后端egg采用的是jwt鉴权为主,session管理用户信息为辅的一个登录策略,但是遇到了一个cookie同源限制。
  • 虽然后端egg通过cors实现了跨域,但是cookie依旧严格遵守同源政策。
  • 当我把后端提交到域名为mboke.top的服务器上后,我在本地启动的前端项目直接axios通讯mboke.top服务器,虽然能跨域请求成功,但是本地启动的前端项目域名是localhost,由于cookie严格遵守同源策略,导致我的跨域请求可以成功,但是cookie一直携带失败。
解决方案
  • 第一种放弃cookie,放弃session管理用户信息为辅的思路,直接改用jwt鉴权及存储用户信息的作用,完全采用jwt鉴权又存储。
  • 第二种Nginx,用nginx方向代理mboke.top后端接口,cookie同源限制的问题也完全解决。
  • 第三种domian,我如果采用了github.io的服务器,我的前端项目放在了github服务器上,那么个人marhooo.github.io源发出的请求至mboke.top接口,依旧cookie被同源限制。我可以把mboke.top顶级域名下,开辟一个dash.mboke.top的二级域名去cname掉marhooo.github.io。这样前端项目就是在二级域名下,这是我们在前端的script中写入一行 ,设置我们的前端二级域名的domain为一级域名,这样cookie就能解除限制。
  • 第四种增加中心节点,专门用来记录cookie,用jsonp这种被广泛用于跨根的cookie共享,看看文章,大型企业的解决方案

2、egg开启https,非nginx。

  • 安装egg-cluster:npm i egg-cluster --save
  • 把pem和key放入一个文件夹中
  • 在config.prod.js文件中写入
exports.cluster = {
  https: {
   key: path.join(__dirname,'../app/cassl/mboke.top.key'), // https 证书绝对目录
   cert: path.join(__dirname,'../app/cassl/mboke.top.pem') // https 证书绝对目录
  }
};
  • 修改package.json的脚本指令:"start": "egg-scripts start --title=egg-server-eggserver --port=443"
  • docker中无需更改任何东西

3、Github展示主页搭建

Github主页可以被cname为一个二级域名,非常关键!白嫖
  • 新建一个项目(项目名设置成:github用户名+github.io)
  • 把静态项目dist中的文件直接push到这个仓库master分支上,这样就已经实现了个人主页的搭建,但是我们还可以更进一步。
  • 在个人的域名解析去添加解析。记录值为此仓库名即github用户名+github.io
  • image.png
  • 在master分支上创建一个CNAME文件
  • 前端知识点提炼:十月份_第1张图片
  • 再去setting点击一下
  • 前端知识点提炼:十月份_第2张图片
  • 后续还可以把此dash.mboke.top二级域名去开启ssl
  • 然后再在Github中Enforce一下
  • image.png
  • 稍等片刻即可.....
  • 后续你github的任何项目的gh-pages分支展示都会被二级域名解析
  • 真的是实现白嫖啊!

你可能感兴趣的:(前端知识点提炼:十月份)