如何使用IdentityServer的已使用令牌授权用户?

时间:2019-02-12 14:18:03

标签: .net-core identityserver4 authorize

我已经使用以下配置创建了一个IdentityServer项目(B):

new Client
{
    ClientId = "ro.client",
    AllowedGrantTypes = GrantTypes.ResourceOwnerPassword,
    ClientSecrets =
    {
        new Secret("secret".Sha256())
    },
    AllowedScopes = { "api1" }
}

我有一个带有自定义登录页面的项目B,当用户输入他/她的用户名和密码时,我将此信息发送到项目B的后端,通过此代码,我可以从身份服务器-项目A中获取令牌:

var client = new HttpClient();
        var disco = await client.GetDiscoveryDocumentAsync(_configuration["App:Authority"]);
        if (disco.IsError)
        {
            throw new System.Exception("get info from identity server is failed.");
        }

        var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest
        {
            Address = disco.TokenEndpoint,
            ClientId = "ro.client",
            ClientSecret = "secret",

            UserName = "bob",
            Password = "Pass123$",
            Scope = "api1"
        });

        var accessToken = tokenResponse.AccessToken;

现在,我要实现的是以某种方式使该用户获得授权并将令牌保存在cookie中,因此,当该用户调用具有authorize属性的另一个动作时,不会将他/她重定向到登录页面。 我该如何实现?

0 个答案:

没有答案