Identity Server无需注销即可获取新令牌或填充声明

时间:2017-02-03 10:39:56

标签: c# security oauth claims-based-identity identityserver4

隐式拨款流程:

有没有办法可以为特定场景获得新的持票人令牌(以及新的refresh_token?)

所以我在应用程序上有一些操作,它将在服务器上调用api,这将需要填充新的声明(以及结果的新的不记名令牌)。

我的问题是在没有用户注销的情况下我是如何(或在哪里)这样做的?

谢谢,

编辑:

事实证明,隐含流中的刷新令牌是一个坏主意。

习题另一种提出同样问题的方法......

在Identity Server 4中是否存在可用于向现有令牌添加新声明的任何位置(委托,方法调用等)?因此对于例如如果我有一个端点https://myauthserver/changemypincode并且从该端点我可以调用它(委托,方法调用等)来向令牌添加新的声明(它可以创建新的令牌,但结果很好)并返回到客户端?

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但是您可以使用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[] { "YourApiName" });
    return token;
}