我开始用angularJS开发一个web应用程序,我不确定所有的东西都是正确的(客户端和服务器端)。 安全性基于单一login页面,如果凭证已选中,我的服务器将发回具有自定义时间有效性的唯一标记。 所有其他REST API都可以通过这个令牌访问。 应用程序(客户端)浏览我的入口点,例如: https : //www.example.com/home.html用户插入凭证并接收一个唯一标记。 这个唯一标记使用AES或其他安全技术存储在服务器数据库中,而不是以清晰的格式存储。 从现在开始,我的AngluarJS应用程序将使用此令牌对所有暴露的REST API进行身份validation。 我正在考虑在一个自定义的http cookie中临时存储令牌; 基本上,当服务器validation凭证时,它会发回一个新的Cookie Ex。 app-token : AIXOLQRYIlWTXOLQRYI3XOLQXOLQRYIRYIFD0T 该cookie具有设置的安全和HTTP Only标志。 Http协议直接pipe理新的cookie并存储它。 连续的请求将呈现cookie的新参数,而不需要pipe理和存储它的JavaScript; 在每一个请求,服务器使令牌失效,并产生一个新的,并将其发送回客户端 – >防止单一令牌的重放攻击。 当客户端收到来自任何REST API的HTTP状态401未经授权的响应时,angular度控制器清除所有cookie并将用户redirect到login页面。 我应该考虑其他方面吗? 将令牌存储在新的cookie或localStorage中更好吗? 任何提示如何生成一个独特的强大的令牌? 编辑(改进): 我决定使用HMAC-SHA256作为会话令牌生成器,20分钟有效。 我生成一个随机的32字节的GUID,附加一个时间戳,并通过提供一个40字节的密钥来计算HASH-SHA256。 由于令牌有效性非常小,因此获得冲突是不可能的。 Cookie将具有域和path属性以增加安全性。 不允许多login。