zoukankan      html  css  js  c++  java
  • 最简单的IdentityServer实现——Client

    客户端控制台演示请求访问令牌,然后使用此令牌访问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
  • 相关阅读:
    【NOIP模拟】排序
    【NOIP模拟】企鹅矩阵
    【NOIP模拟】花花森林
    【BZOJ1045】糖果传递
    【BZOJ1271】秦腾的教学评估
    【POJ3714】Raid
    【TYVJ1424】占卜DIY
    【POJ3190】The Pilots Brothers' refrigerator
    【HDU1055】Color a Tree
    【NOIP2012】国王游戏
  • 原文地址:https://www.cnblogs.com/Lulus/p/7986625.html
Copyright © 2011-2022 走看看