我在使用 Identity Server 3 和不记名令牌身份验证时遇到问题。
基本上,我可以使用过期的访问令牌调用我的 Web API 方法,并且 Web API 对用户进行身份验证并返回数据。
我已将我的客户端设置为 360 秒的访问令牌生命周期,当我检查声明时确实是这种情况。
如何确保无法使用过期的访问令牌调用我的 Web API。我需要在我的 中设置一些东西IdentityServerBearerTokenAuthenticationOptions
吗?
谢谢。
我在使用 Identity Server 3 和不记名令牌身份验证时遇到问题。
基本上,我可以使用过期的访问令牌调用我的 Web API 方法,并且 Web API 对用户进行身份验证并返回数据。
我已将我的客户端设置为 360 秒的访问令牌生命周期,当我检查声明时确实是这种情况。
如何确保无法使用过期的访问令牌调用我的 Web API。我需要在我的 中设置一些东西IdentityServerBearerTokenAuthenticationOptions
吗?
谢谢。
当请求出现时,我们首先要做的是检查身份是否经过身份验证以及身份验证类型是否为“Bearer”。
private static bool RequestIsAuthenticated(HttpActionContext actionContext)
{
return (actionContext.RequestContext.Principal.Identity.AuthenticationType == "Bearer" && actionContext.RequestContext.Principal.Identity.IsAuthenticated);
}
如果返回 false,我们将返回 HttpStatusCode.Unauthorized。