我有一个通用的React应用程序,使用Redux,React routerV4 4,MySQL和Sequelize。我试图保护一些路线,我正在使用Passport来实现这一点,如本教程所示:https://hptechblogs.com/using-json-web-token-react/
通常建议在web浏览器上存储JWT,因为您不必每次加载路由时都向数据库发出请求。但是对于带有SSR的应用程序来说,这是没有用的,因为服务器加载的组件不能访问LocalStorage
或SessionStorage
。
我在想,在通用应用程序…的情况下,在cookie中存储令牌是否更好?有什么想法吗?
谢谢!
发布于 2018-06-18 01:07:59
如果您需要支持SSR,那么将其存储在cookie中是更好的选择。或者,如果您不介意在服务器端序列化到磁盘,可以使用像节点-局部存储这样的lib。
但是,将JWT存储在本地存储或cookie中都是个坏主意--因为您实际上是在将用户名/密码存储在显而易见的位置上。如果这是一个问题,那么您应该创建一个会话标识符(或类似的),然后将其存储在带有https://www.owasp.org/index.php/HttpOnly标志的签名cookie中,然后使用该标识符访问服务器上的敏感信息。
https://stackoverflow.com/questions/50900605
复制相似问题