IdentityServer4脱机访问和刷新访问令牌

时间:2020-08-19 23:29:43

标签: identityserver4

我对oAuth2服务有相当标准的要求,该服务允许客户端请求offline_access令牌,并在过期时将刷新令牌交换为访问令牌。

尽管这似乎根本不起作用。我的客户正在集成到Zapier中。 zapier客户端能够进行身份验证。但是,一个小时后,令牌似乎已过期,但无论出于何种原因,客户端都无法检索新令牌。

下面显示了我的持久授权表,该表显示(我认为)刷新令牌已被访问或创建,尽管到期时间似乎早于创建时间??

enter image description here

我的客户看起来像这样-提取了详细信息:

enter image description here

Identityserver4日志中只有另一件事是

enter image description here

我不确定为什么会这样吗?

更新

Zapier肯定会伸出援手并刷新:

enter image description here

1 个答案:

答案 0 :(得分:0)

您不能认为访问令牌的刷新是为您自动处理的。

取决于客户端的实现,您可能需要手动刷新令牌,有时会自动处理令牌。

由您决定调整令牌的寿命,您可以通过设置以下值来配置它们:

public int IdentityTokenLifetime { get; set; } = 300;               //5 minutes
public int AccessTokenLifetime { get; set; } = 3600;                //1 hour
public int AuthorizationCodeLifetime { get; set; } = 300;           //5 minutes
public int AbsoluteRefreshTokenLifetime { get; set; } = 2592000;    //30 days
public int SlidingRefreshTokenLifetime { get; set; } = 1296000;     //15 days

但是,在便利性和安全性之间始终需要权衡取舍。具有长寿命的访问令牌可能是一个安全问题。也许将其限制为一两个星期,然后让用户再次登录?