我实现了一个REST API,它还提供了对用户进行身份验证的功能。身份验证要求用户发送POST请求,并在正文中包含以下数据:
{
"userOrEmail": "spook",
"passowrd": "Test1234"
}
如果用户名和密码匹配,则用户从服务器获取令牌,而如果他们没有,则服务器返回401 Unauthorized,具有以下标题:
WWW-Authenticate: Credentials realm="http://localhost:9000/auth/users/credentials"
那个标题是否可以接受? realm
包含用户可以尝试再次进行身份验证的位置。
答案 0 :(得分:0)
它似乎是可以接受的,但在非常特殊的条件下可能不是最佳的。来自RFC1945:
领域值(区分大小写)与正在访问的服务器的规范根URL组合,定义了保护空间。这些领域允许将服务器上受保护的资源划分为一组保护空间,每个保护空间都有自己的身份验证方案和/或授权数据库。领域值是一个字符串,通常由原始服务器分配,可能具有特定于身份验证方案的其他语义。
所以,你可以,但我可能会对使用相同身份验证的多个应用程序产生偏执,如果他们要共享相同的域名,则会无意中进行交叉身份验证。更好的方法是通过应用程序隔离领域,只是为了安全起见。
答案 1 :(得分:0)
不,这是不可接受的。
a)没有名为"凭证"。
的认证方案b)"领域的目的"参数不同。