前端知识点提炼(十月份)
1、同源cookie限制 问题描述:
解决方案
- 后端egg采用的是jwt鉴权为主,session管理用户信息为辅的一个登录策略,但是遇到了一个cookie同源限制。
- 虽然后端egg通过cors实现了跨域,但是cookie依旧严格遵守同源政策。
- 当我把后端提交到域名为mboke.top的服务器上后,我在本地启动的前端项目直接axios通讯mboke.top服务器,虽然能跨域请求成功,但是本地启动的前端项目域名是localhost,由于cookie严格遵守同源策略,导致我的跨域请求可以成功,但是cookie一直携带失败。
2、egg开启https,非nginx。
- 第一种放弃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共享,看看文章,大型企业的解决方案。
- 安装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 证书绝对目录
}
};
3、Github展示主页搭建 Github主页可以被cname为一个二级域名,非常关键!白嫖
- 修改package.json的脚本指令:
"start": "egg-scripts start --title=egg-server-eggserver --port=443"
- docker中无需更改任何东西
- 新建一个项目(项目名设置成:github用户名+github.io)
- 把静态项目dist中的文件直接push到这个仓库master分支上,这样就已经实现了个人主页的搭建,但是我们还可以更进一步。
- 在个人的域名解析去添加解析。记录值为此仓库名即github用户名+github.io
![]()
文章图片
- 在master分支上创建一个CNAME文件
![]()
文章图片
- 再去setting点击一下
![]()
文章图片
- 后续还可以把此dash.mboke.top二级域名去开启ssl
- 然后再在Github中Enforce一下
![]()
文章图片
- 稍等片刻即可.....
- 后续你github的任何项目的gh-pages分支展示都会被二级域名解析
- 真的是实现白嫖啊!
推荐阅读
- 小学英语必考的10个知识点归纳,复习必备!
- Jsr303做前端数据校验
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- 前端代码|前端代码 返回顶部 backToTop
- (六)Component初识组件
- java|java 常用知识点链接
- 心理学知识点总结(1)
- 前端|web前端dya07--ES6高级语法的转化&render&vue与webpack&export
- 前端自学笔记01
- js保留自定义小数点