【问题标题】:Handle bad access_token sent through request using Web API 2 C#使用 Web API 2 C# 处理通过请求发送的错误 access_token
【发布时间】:2015-05-06 08:32:39
【问题描述】:

您好,我在我的 web api 2 中使用 Bearer 身份验证。用户登录后,我为用户生成访问令牌。此外,当他们请求我的 web api 时,他们必须在请求标头中发送访问令牌。所有有效的访问令牌都在请求 web api,没有任何问题。但我不确定如何处理错误的访问令牌(已过期)。如果您有,请告诉我解决方案。提前致谢。

【问题讨论】:

    标签: c# oauth-2.0 asp.net-web-api2


    【解决方案1】:

    除了 Mahesh Kava 之外,您还可以扩展 AuthorizeAttribute 类来为未经授权的请求返回更详细的信息。参考这个SO question

    【讨论】:

    • 但我正在寻找一种方法来检查访问令牌是否已过期。
    【解决方案2】:

    您应该使用[Authorize] 过滤器属性来授权请求​​。所有带有过期令牌的错误请求都将被处理为 401 未经授权的错误

    【讨论】:

    • Authorize 属性按预期工作。但我想返回一个有意义的错误消息而不是 401。如何检查访问令牌是否有效且未过期?
    • 据我所知,OAuth 2.0 不会提供任何信息来检测过期令牌。如果您正在开发 API,您可以检查 .expires 和 expires_in 属性并与当前日期时间进行比较以检查令牌是否过期。
    • 我也是这么想的。但是我在 AuthorizationFilterAttribute 中检查了 HttpActionContext。我没有得到 .expire 相关数据。我在哪里可以找到这些数据?
    • 我建议你看看这篇文章。 asp.net/web-api/overview/security/…
    猜你喜欢
    • 2020-11-08
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 2016-06-10
    • 2020-10-31
    相关资源
    最近更新 更多