【问题标题】:How safe is it to save session locally in AngularJS?在 AngularJS 中本地保存会话有多安全?
【发布时间】:2017-08-12 20:02:59
【问题描述】:

这是我的结构:

  1. HTML 表单向nodejs 发送身份验证。
  2. 使用passportjs > res.senduseridjwt-simple(json Web 令牌)进行身份验证。
  3. 收到的信息保存在$localStorage.user。我在所需的任何控制器中使用该信息并将其包含在内并将我的post/get 请求发送到nodejs
  4. 我解码nodejs中的信息并查询DB

这样安全吗?这是它在现实世界中的运作方式吗?

非常感谢。

【问题讨论】:

标签: angularjs node.js jwt


【解决方案1】:

@某人名: 您提到的工作流程稍微正确。 完成护照认证的理想方法是,

  1. 用户登录输入他的用户名和护照。
  2. 使用这些表单数据发送发布请求。
  3. 使用Passport 验证凭据。使用 passport.authenticate 将调用 serializeUser 并为您获取有效用户(如果存在)。否则我们会返回登录错误响应。
  4. 成功登录后会自动在后端创建会话,保存在 sessionStorage 中并与响应一起添加。
  5. 在客户端获取响应后,此 cookie 将自动保存到浏览器的本地存储中。
  6. 每次我们发送后续 API 请求时,我们都需要在 req 标头中包含此 cookie。
  7. 这个 cookie 在后端每次都应该是validatedpassport.authorize 将再次使用 cookie 并检查会话是否有效。
  8. 用户注销后注销会话。

    希望我已经让你明白了。

【讨论】:

  • 所以如果有人编辑了cookie并将其发送到服务器,passportjs不会接受它,因为它不是原始的,对吧?
  • 无法从客户端编辑从后端创建的 cookie。此外,创建的 Cookie 将包含创建时间、到期日期时间等详细信息。后端 cookie 管理将由 Passport.js 自动处理。
猜你喜欢
  • 2011-03-15
  • 2017-05-22
  • 2012-05-03
  • 1970-01-01
  • 2021-08-20
  • 2015-09-28
  • 2012-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多