我有两个站点,想它们的token可以共用,怎么做到?

我有两个站点,它们登录之后,都会生成一个token,用于确定认证成功,下次API请求就可以带上token,也必须带上才能请求。

但是我怎么才能实现token在两个站点上面共用呢?

阅读 10.1k
6 个回答

很早很早以前喜欢用 P3P 技术,用于设置跨域 cookie。

现在的话应该更流行 oauth 或者其它认证方案。比较建议采用这样的方案。

两个站点token的配置弄成一样的就行了。这样解析token出来就是信息就是一样的,如果你是缓存存储token的,那就是使用相同的缓存服务器

前台把token存到浏览器的localStorage里,localStorage可以在同一浏览器的不同窗口调用,然后在后台把两个站点的表连上,或者干脆请求同一个接口。
PS:存值:localStorage.setItem(name, xxxxxx)
取值:let anything = localStorage.getItem(name)

在不跨域的情况下,cookie、localStorage、sessionStorage三种方式都能实现,只要储存,就能读取。在跨域的情况下,就抱歉了。

新手上路,请多包涵

我们现在就是存的httpOnly cookie,但是你两个站点必须是同一个超域,如xxx.哈哈.com, yyy.哈哈.com。cookie存在哈哈.com下。

单点登录网上有很多成熟的解决方案了,基本流程差不多都是这样:
1.先解决跨域问题
2.多个站点使用相同的token校验、生成方案,比如可以使用jwt
3.token存在cookie或localStorage中
4.多个站点之间通讯,将token放入请求头中或拼接到URL参数中传递出去
5.站点得到token后,完成登录状态同步

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏