3

我正在开发一个使用 REST .NET Web API 的 Web 应用程序。我的 Web API 是无状态的,我使用的是静态 HTML 和 JQuery 请求。

问题.... 进行登录/密码验证的最佳方法是什么?

申请流程:

  1. API XHR 请求
  2. 状态为 401 的 API 响应
  3. JS重定向到登录页面
  4. API Authentication XHR 请求(带有登录名和密码)
  5. 带有令牌的 API 响应
  6. 新的 API XHR 请求(带有令牌)
  7. 带有数据的 API 响应
4

1 回答 1

1

我相信这里的答案是视情况而定;这实际上取决于 API 背后的信息有多敏感。

如果我们谈论的是非常敏感的数据,我会实施亚马逊使用的模型

对于大多数网站,您所描述的都很好。我会使用 https 来提高安全性。您可以在 cookie 中或作为自定义标头传输您的加密令牌。

在您的 API 控制器中,您可以使用 [Authorize] 属性来限制对那些需要身份验证的端点的访问。

您可以公开一个委托处理程序来处理所有请求并在令牌无效时以 401 响应,或者设置当前主体以便满足 Authorize 属性。

如果您需要任何代码示例,请告诉我,我以前做过。

于 2013-04-12T21:46:22.537 回答