当令牌过期(而不是无效)时,如何让OAuthAuthorizationServerProvider返回特定的错误代码或响应?

时间:2015-02-19 12:58:55

标签: c# asp.net-mvc oauth owin

我的MVC WebAPI项目有一个常规的OWIN OAuth设置 - 来自前端开发人员的一个请求是能够确定令牌是否被拒绝,因为它已经过期,或者它只是一个无效的令牌。

据我所知,默认情况下,OAuthAuthorizationServerProvider位于中间,并且神奇地拦截查看承载令牌的Authorization标头的请求,并确定是否已对此请求授权或发送401 / Authorization。

是否可以自定义此行为/是否有其他方法可以确定授权被拒绝后的原因

我可以看到存在以下方法:

public virtual Task ValidateAuthorizeRequest(OAuthValidateAuthorizeRequestContext context);

但是我不确定默认的实现是什么,看起来是什么样的,或者这是否是我应该去定制提供者以实现我所追求的目标。

我在Startup.cs中的OAuthOptions:

OAuthOptions = new OAuthAuthorizationServerOptions
{
    TokenEndpointPath = new PathString("/Token"),
    Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
    AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
    AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(60),
    AllowInsecureHttp = true
};

0 个答案:

没有答案