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

Bus*_*ata 5 security flask angularjs

在观看AngularJS"Massive AngularJS apps"演示文稿(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)客户端app启动
8)客户端应该调用/ token(带cookie)
9)Flask验证请求,生成新访问+刷新令牌并使exp cookie失效
10)客户端收到令牌并可以使用令牌使用基本身份验证头进行正常的REST调用

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

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

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

登录流程

Mik*_*utz 3

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

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

  1. 用户(通过他们的网络浏览器)向网络服务器提交身份验证秘密(IE 用户和密码)
  2. 使用上述内容,Web 服务器:
    1. 创建一个不可伪造的新秘密,可以对其进行解码以识别用户(IE 签名或加密用户记录、包含登录信息的会话 ID 或用户引用令牌)
    2. 将新的秘密推送到用户的网络浏览器中(IE 使用户的网络浏览器将其存储为 cookie)
  3. 所有未来来自客户端的 HTTP/API/REST 连接(除了更改用户身份验证密钥)都通过包含 web-server-secret/cookie 来完成,或者通过客户端 javascript拉取 cookie并将其包含在 URL/data 中body 或让 Web 服务器通过正常方式访问 cookie

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