如何使用asp.net web api实现脱机令牌

时间:2016-01-15 13:02:49

标签: asp.net api rest oauth-2.0 asp.net-web-api2

我已经有一个带有承载令牌的休息API,现在我需要允许api的客户端可以使用相同的令牌连接api一年,例如。我认为在API中实现刷新令牌可以实现我的目标,但是在原始令牌过期之后不可能使用刷新令牌获取新令牌并且我认为这是一个难闻的气味会增加API中每个令牌的时间客户必须选择是否需要离线令牌。

我的API是使用ASP.NET Web API 2构建的,其中已经存在OAuth 2的实现。

1 个答案:

答案 0 :(得分:0)

嗯,我错了,因为当原始令牌过期时可能会刷新令牌,但我们需要确保每个令牌都有自己的到期日期,刷新令牌的到期日期大于身份验证令牌。< / p>

这里我有一个代码示例来说明如何设置刷新令牌到期日期。

public async Task CreateAsync(AuthenticationTokenCreateContext context)
{
    var refreshToken = Guid.NewGuid().ToString("n");

    context.Ticket.Properties.IssuedUtc = DateTime.UtcNow;
    context.Ticket.Properties.ExpiresUtc = DateTime.UtcNow.AddYears(1);

    context.SetToken(refreshToken);
}

以上是将刷新令牌到期时间设置为1年。