2

我们已经构建了一个 REST API。该 API 已构建并运行,并对每个请求使用基本身份验证。

我们现在希望构建其他使用 REST API 的 Web 应用程序。但是,我们在解决如何在 Web 应用程序中进行身份验证时遇到了问题。

理想情况下,我们希望 Web 应用程序显示登录页面,并且用户将输入他们的 REST API 凭据。问题是,一旦用户“登录”到 Web 应用程序,Web 应用程序如何以及在哪里存储输入的凭据,记住它需要存储它们以便在何时将凭据提交给 REST API它需要提出任何进一步的要求。

现代网络浏览器必须做类似的事情,不是吗?当我们在浏览器中访问 REST API 时,它会要求我们输入用户名和密码一次,但后续请求会重新提交我们之前输入的凭据。我们如何在 Web 应用程序中复制它?我假设将它们存储在会话中是一个坏主意......?

- 编辑

可能值得指出的是,对 REST API 的请求将从服务器发出,因此不希望将它们存储在客户端。

4

1 回答 1

1

我认为你可能正在处理这个错误。如果您有一些业务要求在每个请求中提交用户名和密码,您可能应该找到提出要求的人,并努力与他们交谈。根本没有理由这样做。这就是会话的用途。

您只对用户进行一次身份验证。身份验证后,您给该用户一个会话。您不再需要进行身份验证,因为会话会告诉您用户是谁。

让用户在每个请求中都输入他们的凭据会惹恼他们的生活。将其存储在客户端(在 cookie 或本地存储中)是有问题的,并且具有严重的安全隐患。在所有情况下,每次请求都通过网络发送用户名/密码对(虽然理论上通过 https 是安全的)只是一个坏主意。这几乎是会话的标志性用例,使用它们。

于 2013-10-17T15:20:37.627 回答