目前,我的身份验证流程如下:
用户在客户端浏览器应用程序(准确地说是 AngularJS)中填写登录表单,用户名和密码存储到浏览器的内存中(纯 Javascript 变量)。
访问受保护的 API 资源时,请求通过 SSL 上的 HTTP Basic Auth 使用存储在内存中的凭据进行身份验证。
问题是,当用户刷新页面时,她的凭据被清除,她需要重新登录。我在这里遗漏了一些明显的东西吗?
到目前为止我发现的解决方案很少:
将用户名和密码存储到 cookie 中:这显然不安全,即使使用安全 cookie 和/或加密也是如此。
使用会话 cookie:这似乎违反了 RESTful 的无状态原则。
(我猜 OAuth 在客户端中安全存储访问令牌有同样的问题?)