请问 spa 的应用,后端是 rest 的 api,这样的情况下, token 只存于内存中吗? cookie 还有用吗?

2016-10-24 03:12:07 +08:00
 xjdata

react 的 spa ,登陆后 api 返回 token 我将 token 存入 state 中。在需要验证身份的时候读取发送。

  1. 是否可行?
  2. 这样的话是不是就不用 cookie 来存储 token 了?
  3. 如果可以我是否可以把 id , name 等用户信息也抛开 cookie 呢?
  4. 上述想法有什么错误之处?

谢谢。

2743 次点击
所在节点    问与答
3 条回复
mapleray
2016-10-24 11:44:03 +08:00
1. 可行
2. 可以不用, cookie 存只是一种方式,你也可以考虑其他方式,只要你能拿到 token,然后请求时带上就行
3. 理论上也是可以的
4. 没什么错误,你说的方式能实现 rest api 的请求

你可以看看 jwt ,把验证放在 header 里面
pumpkin
2016-10-24 17:23:59 +08:00
有错误,如果放在 state 中,就相当于放在内存中,页面销毁后就没了,导致每次打开你都得重新获取 token 。如果不用 cookie 的话,可以把 token 存在 localStorage 中,每次页面建立之前(可以看看各大框架的生命周期),尝试由 localStorage 中获取 token ,然后拿到后端验证,如果过期了就重新登录获取 token ,然后把 token 放到内存以及 localStorage 中。如果内存中存在 token 就直接在内存中带上 token 进行身份验证(就是用户主页面一直没有关闭的时候),过期了再按上面走一遍。
xjdata
2016-10-25 00:34:25 +08:00
多谢各位。

知道这些是可行的 但是每个环境不同 可能最后还是要根据实际需求实际应用了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/314899

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX