【发布时间】:2021-06-27 14:19:41
【问题描述】:
我有一个应用程序 (A),多个用户可以通过该应用程序登录。用户名和密码,并接收即将到来的请求的令牌。如果他们的令牌过期,他们可以得到一个新的。这一切都很好。现在的问题是有时App(A)需要通过App(B)访问。一个 API 调用本身也需要一个(单独的)令牌。无论是哪个客户端进行调用,从 A 到 B 的调用都需要使用相同的令牌。换句话说 - 应用 B 不需要知道是哪个客户端发起呼叫,它只是将每个呼叫都视为来自应用 A。
我的问题在于以线程安全的方式生成和刷新 TokenB。假设 TokenB 已过期,C1、C2、C3 都在同一时间拨打电话。当然应该只生成一个新的令牌。
我认为这是一个很常见的障碍,但我真的找不到关于线程安全令牌(重新)生成这个特定主题的任何指南。
App A 是用 C# 编写的。并不是说它对这个问题很重要,但也许微软对此有解决方案。
【问题讨论】:
-
这篇文章经过深思熟虑,目的明确。没有理由关闭它,因为“需要更多关注”
标签: c# security concurrency access-token