共享 RestAPI 令牌的模式是啥?
Posted
技术标签:
【中文标题】共享 RestAPI 令牌的模式是啥?【英文标题】:What's the pattern for sharing a RestAPI token?共享 RestAPI 令牌的模式是什么? 【发布时间】:2020-09-14 10:48:51 【问题描述】:我应该如何在多个类中存储和重用 restAPI 授权令牌?
我正在使用一个 RestAPI,我的登录代码需要一个用户、密码和服务器,然后返回一个身份验证令牌。该登录代码位于我的所有 RestAPI 调用的通用基类中,它工作正常。但是每个新对象都不知道令牌,因此必须重新授权。我需要它们在生成后共享相同的令牌。我不能使用单例,因为我可能必须在同一个会话中使用多个不同的用户登录。
我确定有一个模式,但我找不到,你能帮忙吗?
【问题讨论】:
【参考方案1】:您需要的是缓存。登录服务可以是缓存访问令牌的单例,您可以使用并发字典来实现访问令牌缓存。
类似这样的:
public class LoginService
private ConcurrentDictionary<string, string> accessTokenCache = new ConcurrentDictionary<string, string>();
private string callServerLogin(string user, string password)
throw new NotImplementedException();
public string Login(string user, string password)
var accessToken = callServerLogin(user, password);
accessTokenCache[user] = accessToken;
return accessToken;
public bool TryGetCachedAccessToken(string user, out string accessToken )
return this.accessTokenCache.TryGetValue(user, out accessToken);
【讨论】:
以上是关于共享 RestAPI 令牌的模式是啥?的主要内容,如果未能解决你的问题,请参考以下文章
JWT:使用 grant_type=password 时刷新令牌的优势是啥