我运行此示例应用程序:
http://www.asp.net/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server
从
下载http://code.msdn.microsoft.com/OWIN-OAuth-20-Authorization-ba2b8783
在AuthorizationServer项目Startup.Auth.cs文件中,我添加了
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(1),
里面
app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions {
这样令牌将在1分钟后过期。
1分钟后令牌过期,我尝试刷新令牌,它给了我错误
远程服务器返回错误:(400)错误请求。
我的问题是:
如果令牌过期,是否可以刷新令牌?或者,如果用户尝试访问受保护资源,如何自动刷新过期的令牌?
答案 0 :(得分:2)
默认情况下,如果相关的身份验证令牌已过期,则OWIN会拒绝刷新令牌。以下是示例,您可以如何覆盖此行为:
public class RefreshTokenProvider : IAuthenticationTokenProvider
{
public async Task ReceiveAsync(AuthenticationTokenReceiveContext context)
{
var ticket = LoadAuthenticationTicketFromDatabase();
context.DeserializeTicket(ticket);
context.Ticket.Properties.ExpiresUtc = DateTime.MaxValue;
}
}