正文
众人纷纷表示赞同。
PHP 心里再次鄙视了一下C# , 说: “NO , NO ,
cookie是不能跨域的, a.com 产生的cookie , 浏览器是不会发到b.com去的。
”
有人在悄悄地google , PHP果然说得不错。
大家赶紧检查了下自己的域名,有的叫 xxx.vaction.com, 有的叫xxx.hr.com , 看来共享cookie方案不管用。
PHP补充到: “也许人类能把我们统一到一级或二级域名下, 比如 xxx.company.com, 这样cookie可以共享了! 但是我们后端没有session 也不行啊, 你cookie发过来,我内存中没数据,根本不知道你是否登录过, 怎么验证?”
C#说: “session 也可以共享哦 , 你看我这个系统有两个服务器,共享的是redis中的session, 将来我们这几十个系统都共享同一个redis,想想都让人激动啊!”
Python 说: “ 这么多系统, 架构不同,语言也不同, 共享session太麻烦了吧? ”
C# 发愁地说: “那怎么办? ”
这时候旁边传来了一声大吼: “你们在那里吵吵什么,老子在生成报表,都没法专心干活了!”
这是脾气暴躁的COBOL在抱怨了, 千万不要惹这个老家伙,于是大家纷纷噤声, 老老实实地睡觉去了。
第二天晚上,COBOL程序终于歇着了, 大家继续讨论。
Python提了一个新点子:“要我说,我们别共享session了, 我们就用cookie, 用户在我这个报销系统这里登录了, 我就在cookie中写个token , 用户访问别的系统,就可以把token 带过去, 那个系统验证一下token ,如果没问题,就认为它已经登录了。”
“那token 得加密吧, 要不然谁都可以伪造” C#安全意识挺强
“那是自然, 听说过json web token 没有? 我们每个系统在生成token 的时候,都要对数据做个签名,防止别人篡改, 下面就是我生产的token , 其中有header 信息和userID, 你看我用Hash算法和密钥生产了一个签名。 这个签名啊也是token数据的一部分, 到时候也会发到你的系统去” Python 说
(计算签名的过程)
(放置到cookie中的token)