![001e2dc5740e1e3139a03f00ccbc8197.png](https://img-blog.csdnimg.cn/img_convert/001e2dc5740e1e3139a03f00ccbc8197.png)
最近忙于改版安全平台的后台系统,前版本是用Flask做的前后端不分离,它在不断的增加新功能,我一个人既写前端又写后端实在赶不上进度了。所以我跟领导讨论后决定搞前后端分离,借调前端组的人力来写前端。在和前端联调的时候,我发现从后端写session到前端时失败了,谷歌查找原因发现是跨域了,后端接口服务域名和前端的域名完全不同。
在找解决方案的时候发现一个文章[1],文章提出两个方案并解释了它们的原理。我来画蛇添足的说一下安全的问题,方案一时服务器生成token给客户端,客户端使用token调用接口,客户端logout之后,token还会存在一段时间,如果token泄露出去,坏人就可以非法获取数据;方案二是服务器生成cookie,传给客户端,并且写入redis,客户端每次都自动带cookie访问服务器,客户端logout能立即销毁cookie。方案二这也好那也好,所以我选择方案一,因为token方案实现快,健壮性强。
主流的token方案是JWT(json web token),Python的jwt扩展包就是PyJWT[2],主要作用就是把客户端登录信息[uid, authority,logintime]加密和解密。定下来方案是Flask+PyJWT,之后找到一个好文章[3],这位大神为了方便讲解,居然新建了一个完整的demo分享出来,把代码