繁体   English   中英

使用REST API和Javascript客户端,如何在刷新页面后保持登录状态?

[英]Using a REST API and a Javascript client, how to stay logged in after a page refresh?

目前,我的身份验证流程如下:

  1. 用户在客户端浏览器应用程序(准确地说是AngularJS)中填写登录表单,用户名和密码存储在浏览器的内存中(纯Javascript变量)。

  2. 访问受保护的API资源时,将使用存储在内存中的凭据通过SSL通过HTTP基本身份验证对请求进行身份验证。

问题是, 当用户刷新页面时,其凭据将被清除,并且需要再次登录 我在这里错过明显的东西吗?

到目前为止,我发现的解决方案很少:

  1. 将用户名和密码存储到cookie中:即使使用安全cookie和/或加密,这似乎也不安全。

  2. 使用会话cookie:这似乎违反RESTful无状态原则。

(我想OAuth在将访问令牌安全地存储在客户端中时也会遇到同样的问题?)

会话cookie在这里完全可以。 安装后,您无需关心它们,浏览器将通过标头将它们与每个请求一起发送。

灵感来自这个答案 ,我结束了做一些像这样 (链接会打开一个相当大的图片)。

简而言之,客户端将访问令牌存储在javascript变量中,但刷新令牌存储在服务器端会话中(在托管我们的客户端应用的服务器上,而不在API服务器上)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM