-
Notifications
You must be signed in to change notification settings - Fork 22
最简单的IdentityServer实现——Client
L edited this page Dec 4, 2017
·
5 revisions
客户端控制台演示请求访问令牌,然后使用此令牌访问API
新建一个.net core的控制台程序IdentityServer.EasyDemo.Client
引用IdentityModel
在Program.cs中,写上调用的方法,如下所示:
//从元数据中发现终结点,查找IdentityServer(5000端口)
var disco = await DiscoveryClient.GetAsync("http://localhost:5000");
if (disco.IsError)
{
Console.WriteLine(disco.Error);
return;
}
//向IdentityServer请求令牌
var tokenClient = new TokenClient(disco.TokenEndpoint, "client", "secret");
var tokenResponse = await tokenClient.RequestClientCredentialsAsync("api1");
if (tokenResponse.IsError)
{
Console.WriteLine(tokenResponse.Error);
return;
}
Console.WriteLine(tokenResponse.Json);
//访问Api
var client = new HttpClient();
//把令牌添加进请求
client.SetBearerToken(tokenResponse.AccessToken);
var response = await client.GetAsync("http://localhost:5001/identity");
if (!response.IsSuccessStatusCode)
{
Console.WriteLine(response.StatusCode);
}
else
{
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(JArray.Parse(content));
}
启动IdentityServer项目与Api项目,调试Client项目
查看结果