在每个API调用上生成新的JWT

时间:2017-10-06 00:16:03

标签: .net jwt asp.net-core-2.0 .net-core-2.0

我是.NET开发的新手,所以请不要假设我理解所有基础知识(即请使用小词,我不会被任何我愚蠢的假设所冒犯)。

我正在实施基于令牌的身份验证,并花了很多时间在Google上搜索答案。我已经到了可以生成JWT并在API调用中返回它,拒绝未经授权的API调用以及接受授权的API调用的地步。

我的令牌设置为在发布后30分钟到期。我的目的是考虑用户在30分钟不活动后退出。因此,在每个API调用中,我想发布一个新的30分钟到期的JWT,并且客户端将需要在每次调用时替换存储的令牌。

显然,我可以为每个API端点调用类似var token = TokenService.GenerateToken()的内容,但这看起来很麻烦。

我想知道是否有一个受制裁的方式进行设置,以便自动生成并附加到每个授权的呼叫中?或者我是以错误的方式解决这个问题并实施一个难以理解的解决方案?

1 个答案:

答案 0 :(得分:0)

有两种类型的令牌,一种是访问令牌,另一种是刷新令牌。我不认为你应该做滑动过期,因为它会使访问令牌变得脆弱。(如果有人拥有令牌并且可以用它来破解你的系统)。对于Access令牌,它应该具有短暂的实时时间。客户端应使用具有客户端ID的刷新令牌来获取新的访问令牌。

有时候尝试为客户端应用程序做太多可能会损害您的系统安全性。在到期时间之前使用刷新令牌应该是客户端的工作。

我认为OAuthAuthorizationServerOptions类拥有实现它所需的一切。