在中处理JWT的最佳实践是什么.NET Core 2.0应用程序与React前端



要提供一些背景信息,请耐心等待,

  • 我们有一个现有的外部OAuth服务,用于我们所有应用程序的共享身份验证。它有一个用于用户身份验证的登录表单,并为其API提供JWT,这些API在我目前正在开发的应用程序中调用
  • 我正在使用的应用程序。NET Core 2.0,带有React前端。服务器端基本上负责管理外部API的令牌,并为React客户端提供"代理"API以进行调用,然后再调用外部API。从本质上讲,该体系结构与任何其他标准的Web API/MVC应用程序类似,但它不是直接从数据库获取数据,而是调用一些其他外部API

在的上下文中。NET核心应用程序,它的API使用JWT身份验证。一旦用户使用该外部服务进行了身份验证,他们将有一个用于外部API的JWT(存储在会话中)和另一个用于内部"代理"API的JWT(在cookie中传递给客户端)。因此,客户端进行调用("api/users"),该调用被路由到我的控制器,并使用JWT授权,该控制器对某些UserService进行调用,该UserService使用存储在会话中的JWT对外部api进行调用。

React客户端使用令牌-->进行API调用。NET核心API抓取存储在会话中的JWT-->使用JWT调用外部API

这一切都很好,但现在我在刷新客户端JWT时遇到了一些问题。我目前只在cookie中向客户端传递访问令牌,但我还需要向客户端传递刷新令牌,以便在过期时间过后它可以获取新的访问令牌,而我目前没有这样做。我还需要以某种方式通过令牌的到期时间。将所有这些序列化为JSON对象并将其传递到cookie中有意义吗?什么样的好方法可以将这些信息传达给客户?我主要是想让客户端检查"我的令牌过期了吗?",如果是,使用刷新令牌获取新令牌,如果不是,继续API调用。

很抱歉,如果所有这些信息对一个简单的问题来说都是夸大其词,只是试图提供一些上下文。

如果您使用的是Identity Server,您可以在这里检查刷新令牌

相关内容

最新更新