【问题标题】:"error": "invalid_grant", "error_description": "Bad credentials"“error”:“invalid_grant”,“error_description”:“凭证错误”
【发布时间】:2020-03-31 09:16:34
【问题描述】:

我正在 SpringBoot RestFul API 中实现 Oauth2。一切正常,除非我使用 错误密码 得到错误响应:

状态:400Bad Request

{
    "error": "invalid_grant",
    "error_description": "Bad credentials"
}

但我的例外是这样的:

状态:401 未授权

{
    "error": "unauthorized",
    "error_description": "Invalid username/password combination"
}


密码错误后:

【问题讨论】:

    标签: java spring rest spring-boot oauth-2.0


    【解决方案1】:

    如果您的授权凭据不正确,将返回401 状态。这将是您的基本身份验证用户名和密码(在邮递员授权选项卡中),它们似乎没有改变。

    返回 400 状态,因为验证请求的正文参数(用户名、密码)未能找到匹配项。 (即提供了错误的凭据。)就像其他请求未提交所需参数或格式不正确一样。您的请求通过了 oauth 服务器对登录端点的基本授权。如果两种情况都返回 401 状态,那将是令人困惑和不正确的。 400 status

    【讨论】:

    • 我需要一个解决方案。可以提供吗?
    • 不,这是 spring-security-oauth2 库的预期功能。您也许可以拦截响应并更改状态代码,但我不推荐这样做。 baeldung.com/spring-mvc-handlerinterceptor
    猜你喜欢
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 2018-11-02
    • 2014-11-28
    • 1970-01-01
    • 2018-10-02
    • 2020-11-06
    • 2020-03-24
    相关资源
    最近更新 更多