首页 > 其他 > 详细

项目多方协同开发,用户 token 怎么传递好?

时间:2020-07-08 15:16:20      阅读:122      评论:0      收藏:0      [点我收藏+]

最近开发了一个项目,这个项目由 A, B, C 三方共同开发。我们是 B 方,登录相关都是由 A 进行开发,然后跳转到 B 和 C 的系统,将用户 token 通过 url 传递过来,我们通过 url获取 token 就能知道当前登录用户了。

但是我方和 C 方实现 token 获取时使用了不同的方法,也就发现了一些问题。

我方使用的是一个中转页面进行写token,获取用户信息等操作,保存到 localStorage 中,然后重定向到实际的页面,如:xxx.xxx.xxx/redirect?token=xxx&url=xxx。这样当用户在 A 系统登录后,页面上的按钮跳转到我方系统都会先跳转到这个中转页面进行我方系统的登录再重定向到实际访问的页面。

但是后面发现一个问题:用户分享了一个我方系统的链接出去,别人打开此链接后如果没有在我方系统进行登录那就没权访问,即使是在 A 放系统进行登录了。

一开始想到的解决方案是,当发现没有权限便跳转到登录页,并带上参数 url,值为我方系统的中转页和当前页的地址:xxx.xxx.xxx/redirect?url=当前页。用户登录成功就跳转到这个 url 并加上 token 参数,因为是中转页的地址所以会先在我方系统进行登录,然后跳到实际页面,也就是分享的那个链接。

而 C 方却没有使用这种统一登录跳转页的方法,而是每个页面 url 接收 token 参数。这样看似简单,但是用户分享页面的时候就会把 url 直接分享出去,当别人拿到这个 url 打开的时候确实不会发生没登录的情况,因为 token 就带在 url 上,但是别人就直接获取到了分享者的用户了,这肯定是不合理的。所以不能使用这种每个页面接收 token 的方式。

后来我又想了下,我们自己的那种方法还是有点麻烦,要拼 url 链接,登录页登录后还得加上 token 跳转。就又想到了一种方法,登录成功后就加载一个隐藏的 iframe,链接就是我们的那个统一登录页链接,把 token 传过来我们这边也就一起登录了,而且之后跳转我方系统也不用再通过这个页面来进行中转了。

项目多方协同开发,用户 token 怎么传递好?

原文:https://www.cnblogs.com/3body/p/13266993.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!