【问题标题】:What's the good http status code to return on expired password?返回过期密码的好的http状态码是什么?
【发布时间】:2017-11-23 23:14:59
【问题描述】:

当密码过期时,rest api 应该返回什么?我的意思是:用户名和密码正确,但是过期了。

Here我发现了

过期或撤销凭证的机制可以是 指定为身份验证方案定义的一部分。

是否有关于过期凭据的正确和/或正确 http 状态代码的规范? http 状态代码是否可以很好地处理凭据过期?

【问题讨论】:

    标签: rest http


    【解决方案1】:

    过期密码是无效密码,服务器不能接受

    因此,如果您使用 HTTP 身份验证(在 Authorization 标头中发送凭据),则可以将 401 与描述性有效负载一起使用。

    以下是来自RFC 7235 的一些引用,HTTP/1.1 中的身份验证参考:

    4.2. Authorization

    Authorization 标头字段允许用户代理进行身份验证 本身与原始服务器 - 通常,但不一定,之后 收到401(未经授权)响应。它的价值包括 包含用户身份验证信息的凭据 被请求资源领域的代理。

     Authorization = credentials
    

    [...]

    3.1. 401 Unauthorized

    401(未授权)状态码表示该请求尚未 已应用,因为它缺少有效的身份验证凭据 目标资源。生成 401 响应的服务器必须发送 一个WWW-Authenticate 头字段,至少包含一个 适用于目标资源的挑战。

    如果请求包含身份验证凭据,则 401 响应表明授权已被拒绝 证书。 [...]

    【讨论】:

    • 您的意思是“描述性有效负载”,...标头?内容讯息? ...什么?
    • @sensorario 我的意思是在响应正文中发送错误的表示(JSON、XML、文本等)。
    • WWW-Authenticate header field containing at least one challenge applicable to the target resource. 挑战是什么?
    • @Cirelli94 请看一下WWW-Authenticate 标头是如何定义的。 challenge 的完整定义见same document 的其他部分。
    【解决方案2】:

    http://getstatuscode.com/419

    不是 HTTP 标准的一部分,419 Authentication Timeout 表示 先前有效的身份验证已过期。它被用作 替代 401 Unauthorized 以区别于 否则经过身份验证的客户端被拒绝访问特定服务器 资源。

    【讨论】:

    • 截至 2018 年 8 月,419 不是 registered in IANA。所以我不会推荐这个状态码。
    猜你喜欢
    • 2018-10-05
    • 2021-10-23
    • 2011-01-01
    • 1970-01-01
    • 2015-06-15
    • 2011-07-27
    • 2021-12-21
    • 1970-01-01
    相关资源
    最近更新 更多