讨论:本地存储中 Passport-local JWT Token 的关注

Posted

技术标签:

【中文标题】讨论:本地存储中 Passport-local JWT Token 的关注【英文标题】:Discussion: the concern of Passport-local JWT Token in Local Storage 【发布时间】:2018-01-13 22:04:41 【问题描述】:

我在 Node.js 上使用 Passport-local(在 Mongodb 中保存用户信息)和 Angular.js 作为客户端。这个过程很简单。 然而,这里有 3 个安全问题:

    当我在客户端登录时,一个带有用户和真实的 json 文件 密码发送到服务器。

    登录后,令牌将保存在 Web Explorer 的本地 存储,将来可以看到,复制和使用。

    salt处理后的jwt token与用户名一起保存在Mongodb用户集合中,可以看到并移到另一个 服务器(这样我们就可以使用相同的用户名和密码 另一台服务器登录并获取新令牌)

有人愿意进一步讨论这些吗?关于如何解决它们并降低网站风险的任何想法?用 https 怎么样?

【问题讨论】:

【参考方案1】:

如果您只想在其他服务器实例上验证您的令牌,则无需在您的用户架构中存储令牌。因为,jwt.verify() 为您提供了检查令牌是否有效的功能。如果令牌有效,那么您将获得在创建令牌时使用的用户信息作为回报。如果您在数据库中找到该用户,那么您的令牌对于有效用户来说是可以的,否则不是。

创建token主要是根据你的服务器需求设置expiresIn,这样即使你的API安全性受到威胁,也不会长时间可用

【讨论】:

以上是关于讨论:本地存储中 Passport-local JWT Token 的关注的主要内容,如果未能解决你的问题,请参考以下文章

带有 Passport-Local 和 deSerializeUser 问题的简单身份验证

“passport”、“passport-local”和“passport-jwt”有啥区别? [关闭]

在 Sailsjs 中使用本地护照时无响应

使用passport-http Basic + passport-local组合时如何防止www-authenticate header

本地护照和本地护照猫鼬的身份验证错误

Passport-local mongoose node.js 支持多种用户类型