xjdata
V2EX  ›  问与答

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

  •  
  •   xjdata · Oct 24, 2016 · 4018 views
    This topic created in 3666 days ago, the information mentioned may be changed or developed.

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

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

    谢谢。

    3 replies  •  2016-10-25 00:34:25 +08:00
    mapleray
    mapleray
    Oct 24, 2016❤️1
    1
    1. 可行
    2. 可以不用, cookie 存只是一种方式,你也可以考虑其他方式,只要你能拿到 token,然后请求时带上就行
    3. 理论上也是可以的
    4. 没什么错误,你说的方式能实现 rest api 的请求

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

    知道这些是可行的 但是每个环境不同 可能最后还是要根据实际需求实际应用了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1666 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 04:24 · PVG 12:24 · LAX 20:24 · JFK 23:24
    ♥ Do have faith in what you're doing.