我有一个与 API 通信的 .NET Core 应用程序。我正在尝试找出如何处理刷新令牌。刷新令牌的端点是可用的,但我无法正确使用它们,因为令牌的生命周期很短,导致刷新后出现问题。
你能帮我吗?
其他问题和答案可能会帮助您理解流程。
正如您的问题所暗示的那样,我不知道有一个中间件可以在“客户端”端处理这个问题。 (客户端是您的 asp.net-core 应用程序,使用刷新令牌访问某些 API。)它如何通过中间件工作?
您的应用程序使用访问令牌向外部 API 发出请求,当访问令牌过期时,必须使用刷新令牌更新该访问令牌。
您的应用程序有办法在使用访问令牌之前知道它是否过期。
在前一种情况下,在查询外部API之前,您的应用程序应检查访问令牌是否已过期,如果是,请先使用刷新令牌获取新的访问令牌。
在后一种情况下,您的应用程序必须“盲目”查询外部 API,然后应该处理查询时可能遇到的身份验证错误:检查 API 在访问令牌过期的情况下应该回复什么,在这种情况下,使用刷新令牌获取新的访问令牌并重试查询。 (最好避免以在重复身份验证失败的情况下可能重新重试的方式处理重试,否则如果外部 API 出现问题,可能会陷入无限循环。)
换句话说,您需要编写一种帮助程序方法或类来封装对外部 API 的所有调用,该帮助程序应该在需要时为您处理随时随地的刷新。