Anu*_*eth 6 javascript express jwt reactjs redux
我有一个Node-Express REST API,我可以向用户控制器发出GET请求/users/:id- 其中:id是存储在数据库中的用户ID号.我还有一个React-Redux客户端应用程序,可以调用API.为了发出请求,客户端应用程序需要访问用户标识,但我目前还不确定在客户端存储用户标识的最佳方法.
对于其他上下文,我的API会在登录时向客户端发送一个包含user-id 的JWT令牌 ; 客户端应用程序将令牌保存在localStorage.当客户端发出请求时,API会在将响应发送回客户端之前验证解码后令牌中的user-id是否与URL中包含的Id匹配.
我看到两个可能的解决方案
localStorage.(我不认为将它存储在Redux存储中会起作用,因为用户可以刷新,清除用户ID的状态).我的感觉是,这不是最佳实践,因为我没有看到许多其他客户端应用程序采用这种方法.哪两个是更好的解决方案,还是有其他方法我不考虑?
你对选项#1 的看法是正确的。切勿在客户端解码令牌。这需要客户端代码知道“秘密”,这会将其暴露给任何查看你的 Javascript 的人。
选项 #2 很好,假设出于安全目的您仍然在每个请求中发送令牌。对于存储,是的,您必须将其存储在 cookie 或 localStorage 中,否则正如您所说,它将在刷新时丢失。
要获取客户端代码中的 ID,请让客户端代码从 cookie/本地存储中读取它。有一些库可以做到这一点;例如,react-cookie 读取 cookie。您可以在每次需要访问它时执行此操作,也可以在初始页面加载期间读取一次,然后将其分派到 Redux 存储中。
| 归档时间: |
|
| 查看次数: |
882 次 |
| 最近记录: |