【问题标题】:How to share one token between multiple Vue apps如何在多个 Vue 应用程序之间共享一个令牌
【发布时间】:2018-11-05 18:48:33
【问题描述】:

我想找到一种在多个 vue 应用程序之间共享一个令牌的方法。有了这个,我可以创建多个模拟后端微服务的单页应用程序。我正在考虑将其放入 Vuex 并将状态保存在本地存储/缓存中,但是我无法为另一个应用程序检索相同的状态。有什么建议吗?

【问题讨论】:

  • 这些应用是位于子域还是不同域?他们使用相同的 API 域吗?
  • 它们在同一个域中。作为 fpr API,它正在进行中。但是,将有一个用于身份验证的网关。

标签: javascript vue.js token


【解决方案1】:

对于这种情况,使用cookies 是合适的。

localStorage 不同,possible 在父域 (example.com) 和子域 (sub-domain.example.com) 之间共享相同的 cookie。这是通过将 cookie 的 domain 属性指定为通配符 - .example.com 来完成的(注意域名前面的前导点)。 Relevant answer

根据应用架构,可以在应用启动时在前端手动读取cookie,验证用户是否登录并保存到store。

如果 API 也托管在子域上,则可以向 API 发出请求(如果指定 cookie 域,cookie 标头将与请求一起发送)并验证用户是否有权访问应用程序.仅在 API 未以不同方式检查 token 时(例如在有效负载或 Authorization 标头中),才建议这样做。

在这两种情况下,建议创建 API 端点来验证令牌,在应用程序挂载时调用它并适当地处理。

此外,由于手动管理 cookie 可能会让人很不舒服,因此使用第三方库将提供与使用 localStorage 类似的 API。例如:js-cookie

【讨论】:

  • 谢谢,我会考虑并尝试一下。如果它会有所帮助,我会将其添加为正确答案。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
  • 2019-03-11
  • 2013-02-02
相关资源
最近更新 更多