客戶端控制台演示請求訪問令牌,然后使用此令牌訪問API
1.新建項目並添加引用
新建一個.net core的控制台程序IdentityServer.EasyDemo.Client
1
引用IdentityModel
2
2.調用方法
在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));
}
3.測試
啟動IdentityServer項目與Api項目,調試Client項目
3
查看結果
4
