我想找到一种在多个vue应用之间共享一个令牌的方法。有了这个,我可以创建多个单页应用程序,模仿后端的微服务。我正在考虑将其放入Vuex并将状态保存在localstorage / cache中,但是我无法为另一个应用程序检索相同的状态。有什么建议吗?
答案 0 :(得分:3)
在这种情况下,使用cookies是合适的。
与localStorage
不同,possible在父域(cookie
)和子域(example.com
)之间共享相同的sub-domain.example.com
。通过将Cookie的domain
属性指定为通配符-.example.com
(请注意域名前面的前导点)来完成。 Relevant answer
根据应用程序体系结构,您可以在应用程序启动时在前端手动阅读cookie
,验证用户是否被登录并将其保存到商店。
如果API也托管在子域中,则可以向API发出请求(如果指定了cookie域,则cookie标头将随请求一起发送),并验证用户是否有权访问该应用。仅在API不以不同方式(例如,在有效负载或token
标头中)检查Authorization
的情况下才建议使用。
在两种情况下,建议创建API端点以验证令牌,在应用程序安装时调用它并适当地处理。
此外,由于手动管理cookie可能会很不舒服,因此使用第三方库将提供与使用localStorage相似的API。例如:js-cookie。