使用外部 JWT 令牌 ASP.NET CORE

Posted

技术标签:

【中文标题】使用外部 JWT 令牌 ASP.NET CORE【英文标题】:Using External JWT token ASP.NET CORE 【发布时间】:2021-04-20 05:50:32 【问题描述】:

我是 asp.net Core 的新手,仍处于学习阶段,我有一个 Rest API,它处理所有身份并针对授权请求返回 JWT。 我现在创建了一个新的 .NET Core Web 应用程序,并且我已经使用该 API 来获取令牌,这个新应用程序的基本流程是

.NET CORE Web Applicaiton -> Calls(With UserCredentials) WebAPI to get Token -> Web Api returns a token with all claims including roles

我已经完成了以上所有,但我想知道上述应用程序状态管理的最佳实践,

我有两个名为 Cars 和 Boats 的控制器 我可以使用会话来保存令牌并检查对每个控制器的每个请求,并检查令牌是否未过期,它是否包含所请求控制器的角色,或者是否有其他更好的方法。

【问题讨论】:

【参考方案1】:

你可以使用session来保存token,但是session是保存在服务器上的,所以我不建议你使用session来保存token。

更好的方法:将token保存到cookie或其他web存储中,当你请求一个被[Authorize]保护的动作时,请求需要携带token,其他请求不需要携带token。

关于检查token是否过期,有以下方法。

    您可以将过期时间设置为较长时间,过期后用户会重新登录。 当客户端获得token时,可以添加listen事件来监听过期时间。在它过期之前,触发一个函数来请求一个新的令牌。

【讨论】:

@Baba Fooka,你能接受这个答案吗?您的认可是我最大的回报。

以上是关于使用外部 JWT 令牌 ASP.NET CORE的主要内容,如果未能解决你的问题,请参考以下文章

ASP Net Identity JWT API 令牌的有效负载要求是啥

ASP.NET Core 中的 Jwt 令牌身份验证

asp.net 核心中的 jwt 令牌无效

使用 JWT 令牌的 ASP.NET Core 网站到 WebApi 身份验证

如何使用 JWT 令牌 ASP.NET MVC

无法使用 ASP.NET Core 从 JWT 令牌获取声明