没有用户名的 HTTP 身份验证

Posted

技术标签:

【中文标题】没有用户名的 HTTP 身份验证【英文标题】:HTTP authentication without username 【发布时间】:2018-03-30 20:17:58 【问题描述】:

我正在节点 js 中创建一个 HTTP 服务器,并且我想向一个只有我会使用的页面添加一个密码。 Basic 认证方案需要用户名和密码(在浏览器弹出窗口中)。拥有用户名对我来说毫无用处,我想知道是否可以只显示密码对话框。

当前代码是这样的,发送Status Code 401 和WWW-Authenticate 标头。

response.statusCode = 401;
response.setHeader('WWW-Authenticate', 'Basic realm="Requires Password"');
response.end();

在 Firefox 中创建此窗口

那么我需要在响应标头中更改什么以仅包含密码字段?

【问题讨论】:

【参考方案1】:

我想知道是否可以只显示密码对话框。

没有。 Basic authentication scheme 基于客户端需要为每个保护空间使用 用户名密码 进行身份验证的模型,通常称为 realm

对于带有 401WWW-Authenticate 且值为 Basic 的响应,浏览器将提示输入用户名和密码。

那么我需要在响应标头中更改什么以仅包含密码字段?

如果由于某种原因您不想要用户名,您可以将其留空,选择默认用户名或选择适合您需要的其他身份验证方案。

【讨论】:

以上是关于没有用户名的 HTTP 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Cookie 与基本身份验证

在 PHP 中访问 HTTP 身份验证用户名?

token进行身份验证

如何在没有基本 http 身份验证的情况下强制 MockitoJUnitRunner 失败?

前后端分离/API接口/oAuth 身份验证

基本 HTTP 身份验证:用户还是应用程序?