我正在使用IdentityServerTools生成令牌:
private async Task<string> CreatePaymentsTokenAsync()
{
var tokenLifeTime = 3600;
var scopes = new[] { CoinbaseAuthConsts.PaymentScope };
// Use in-built Identity Server tools to issue JWT
var token = await _identityServerTools.IssueClientJwtAsync(
CoinbaseAuthConsts.AuthorityClientId,
tokenLifeTime, scopes, new[] { "AstootApi" });
return token;
}
如何向令牌添加声明?
答案 0 :(得分:2)
一种简单的版本,用于创建服务器之间通信的令牌(例如,当您必须从代码中调用受IdentityServer保护的API时)
如果您想更精细地控制生成的令牌,请使用IssueJwtAsync
的重载之一:
Task<string> IssueJwtAsync(int lifetime, IEnumerable<Claim> claims)
// or
Task<string> IssueJwtAsync(int lifetime, string issuer, IEnumerable<Claim> claims)
您可能要检查IssueClientJwtAsync
的源代码以了解内部调用是如何完成的。