【问题标题】:"Remember me" functionality for REST APIs?REST API 的“记住我”功能?
【发布时间】:2014-05-09 01:46:21
【问题描述】:

我很好奇在为 REST API 编写客户端时,实现“记住我”功能的最佳方式是什么。

我负责浏览器客户端(在 angularjs 中完成)和服务器。

我想到的一件事是将身份验证令牌存储在 cookie 中,并简单地让 angularjs 在应用程序启动时拉取这些令牌并尝试使用它们进行身份验证。我不确定这是否会被认为是不安全的或者只是一个坏主意......

对此的任何提示将不胜感激。我很困惑。

【问题讨论】:

  • 在客户端存储凭据与您是否与 REST API、数据库、HTTP API 等通信无关,对吧?

标签: rest remember-me


【解决方案1】:

我个人不记得我使用过 REST,但我目前正在使用 cookie 来验证 REST 调用。基本上,cookie 存储了我传递给服务器的散列​​用户名/密码。

我看不出为什么不能使用同一个 cookie 来实现某种记住我的功能。您只需确保使用 HTTPS 连接来创建 cookie 并且使用安全 cookie。实施某种控制系统,让使用 remember-me 进行身份验证的用户在尝试执行更改密码等操作时必须使用完整的用户名/密码重新进行身份验证,这也有助于加强安全性。

【讨论】:

    【解决方案2】:

    您可以将加密的用户名和密码存储在 cookie 中,并且可以拥有一个资源来接收这些值并验证它们是否具有有效的凭据,cookie 也应该有一个过期时间,您也可以此资源返回不同的状态,例如logged_in、identified 等,您可以根据自己的要求使用这些状态。

    【讨论】:

      猜你喜欢
      • 2012-08-08
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      相关资源
      最近更新 更多