【发布时间】:2020-05-04 16:56:05
【问题描述】:
我刚开始在一家新公司工作,我的任务是在 .NET/Angular 应用上修复当前的身份验证流程。目前,我们使用 .NET Core Identity 进行登录身份验证,登录令牌在 24 小时后过期。
我的任务是通过以下方式更改身份验证: 1)每次用户发送请求时检查令牌(我认为通过使用 JWT 刷新令牌) 2) 令牌应在 20 分钟不活动后过期,并提示用户再次登录。
所有这些都可以通过 Identity Server 完成吗?
【问题讨论】:
-
JWT 访问令牌不会因为不活动而过期。此类令牌无法更改并在到期前保持有效,并且刷新令牌不必是 JWT。该场景可能是具有短期访问令牌(例如 20 分钟)和一个在 24 小时后过期的刷新令牌。通过滑动到期和绝对到期,您可以延长或限制生命周期。您不需要 IdentityServer,但您可以将它用于此任务。请参阅documentation。
-
那么如何完成因不活动而退出的任务呢?如果您的刷新令牌在 24 小时后过期,这是否意味着用户可以保持空闲 23 小时然后再次开始使用系统?如果这些问题听起来很愚蠢,我很抱歉,但我真的很想理解这些概念。
-
刷新令牌在这种情况下仍然有效。通常,拥有一个需要用户再次登录的客户端是没有问题的。但是,结合 client_id 和 secret,您也可以使用 Postman 请求访问令牌。对于前端应用程序(您可能难以隐藏秘密),这可能是个问题。
-
我的回答对您有帮助吗,还是您需要更多信息?
-
这是一个很好的答案。
标签: asp.net-identity identityserver4