AngularJS - 服务器端 index.html 和身份验证

标签 angularjs security flask

在观看了 AngularJS“Massive AngularJS 应用程序”演示 (https://docs.google.com/file/d/0B4F6Csor-S1cNThqekp4NUZCSmc/edit) 后,
我试图实现以下场景

1)用户请求index.html(服务端生成)
2) Flask 检查是否存在身份验证 cookie
3)如果cookie丢失,重定向到login.html(也是服务器端生成的)
4) 在登录页面,POST 登录信息。
5) Flask 验证用户 + 密码 -> 设置 cookie,重定向到/
6) Flask 检查 cookie,检索用户资料 + 生成 index.html
7) 客户端应用程序启动
8) 客户端应该调用/token(使用 cookie)
9) Flask 验证请求,生成新的访问 + 刷新 token & 使 init cookie 过期
10) 客户端接收 token 并可以使用 token 使用基本身份验证 header 进行正常的 REST 调用

我遇到的问题是一旦必须生成 index.html 就实现维护身份验证的方式。
我提议将 token 包含在索引页面的配置文件中(作为 javascript 变量),并在 angularjs 配置时将其复制到 window.session 存储中,但我不太确定它的安全性如何?

这是一个可接受的流安全明智和/或有更好的方法吗?

编辑:更新的问题 + 添加了我将用作序列图的流程:
EDIT2:我注意到我无法重新加载页面,因为 cookie 将过期,所以我开始怀疑访问 token 的使用..

Login flow

最佳答案

我对问题中提出的复杂性感到困惑。

当我考虑 webAPI/RESTful 项目的用户安全时(无论涉及 angularjs/flask),我想到以下数据交换:

  • 用户(通过他们的网络浏览器)向网络服务器提交身份验证 secret (即用户和密码)
  • 使用上述内容,Web 服务器:
  • 创建一个不可伪造的新 secret ,它可以解码以识别用户(即签署或加密用户记录、sessionID-that-includes-login-info 或 user-ref-token)
  • 将该新 secret 推送到用户的 Web 浏览器中(即让用户的 Web 浏览器将其存储为 cookie)
  • 来自客户端的所有 future HTTP/API/REST 连接(除了更改用户身份验证 secret )然后通过包含 web-server-secret/cookie 来完成,或者由客户端 javascript pulling the cookie并将其包含在 URL/data-body 中或让 Web 服务器通过正常方式访问 cookie

  • 您的问题似乎在询问超出我的基本情况的多层复杂性,我不明白是什么需要这种额外的复杂性(特别是您的“问题”文本和您的第 9 步)。如果由于 angular 或 Flask 的某些方面而需要这种复杂性(即:如果您在访问 cookie 时遇到问题,或者您试图减轻一些其他安全问题),请解释。

    关于AngularJS - 服务器端 index.html 和身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23886360/

    相关文章:

    c - 故障转储上的明文密码保护

    javascript - 表单级别的 Angularjs 指令,访问所有字段并检查验证

    javascript - Angular 中的 WebSocket 服务更新范围(使用 ngWebSocket)?

    java - 由于缺少证书,无法从 Java 访问 blockchain.info

    http - 在 JBoss EAP 7 中配置 Http header

    python - 如何使用 Flask 验证 cookie 完整性?

    python - Flask 服务器退出时线程仍然运行

    python - 在 Google Cloud 上使用 celery Worker 部署 Flask 应用

    javascript - 如何在 Angular Js 中的类上编写指令?

    angularjs - 获取 AngularJS orderBy 对两个方向进行排序