IdentServer2 使用不同方式实现(swagger+client+html+postman)

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了IdentServer2 使用不同方式实现(swagger+client+html+postman)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

 

IdentServer1 环境搭建

 

IdentServer2 使用不同方式实现(swagger+client+html+postman)

 

 

IdentServer登陆校验

IdentServer2 使用不同方式实现(swagger+client+html+postman)

 

 

IdentServer2 使用不同方式实现(swagger+client+html+postman)

 

IdentServer2 使用不同方式实现(swagger+client+html+postman)

IdentServer2 使用不同方式实现(swagger+client+html+postman)

Swagger 校验登陆方式

1. Implicit

IdentServer2 使用不同方式实现(swagger+client+html+postman)

 

IdentServer2 使用不同方式实现(swagger+client+html+postman)

IdentServer2 使用不同方式实现(swagger+client+html+postman)

2. Password

IdentServer2 使用不同方式实现(swagger+client+html+postman)

IdentServer2 使用不同方式实现(swagger+client+html+postman)

C#使用IdentServer例子

IdentServer2 使用不同方式实现(swagger+client+html+postman)

using IdentityModel.Client;
using System;
using System.Net.Http;

namespace TPL.Client
{
    class Program
    {
        static void Main(string[] args)
        {
            ClientModel();

            Console.WriteLine();

            PassWordModel();

            Console.ReadKey();
        }

        /// <summary>
        /// 客户端模式
        /// </summary>
        static void ClientModel()
        {
            Console.WriteLine("=== ClientModel === ");

            var client = new HttpClient();

            var response_token = client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest
            {
                Address = "http://localhost:5100/connect/token",
                ClientId = "api_client",
                ClientSecret = "secret",
                Scope = "api"
            }).Result;

            Console.WriteLine("=============================Token==============================");

            Console.WriteLine(response_token.AccessToken ?? response_token.Error);

            Console.WriteLine("=============================WebApi==============================");

            // 调用API
            client.SetBearerToken(response_token.AccessToken);

            var responses_api1 = client.GetAsync("http://localhost:5001/api/Main/HelloString").Result;
            var content1 = responses_api1.Content.ReadAsStringAsync().Result;
            Console.WriteLine(content1);

            //var responses_api2 = client.GetAsync("http://localhost:5001/api/Main/HelloString").Result;
            //var content2 = responses_api2.Content.ReadAsStringAsync().Result;
            //Console.WriteLine(content2); 
        }

        static void PassWordModel()
        {
            Console.WriteLine("=== PassWordModel === ");

            var client = new HttpClient();

            var response = client.RequestPasswordTokenAsync(new PasswordTokenRequest
            {
                Address = "http://localhost:5100/connect/token",
                ClientId = "apiClientPassword",
                ClientSecret = "apiSecret",
                Scope = "api",
                UserName = "system",
                Password = "system"
            }).Result;

            Console.WriteLine("=============================Token==============================");

            Console.WriteLine(response.AccessToken ?? response.Error);

            Console.WriteLine("=============================WebApi==============================");

            // 调用API
            client.SetBearerToken(response.AccessToken); 

            var responses = client.GetAsync("http://localhost:5001/api/Main/HelloString").Result;
            if (response.IsError)
            {
                Console.WriteLine(response.HttpStatusCode);
            }
            else
            {
                //Console.WriteLine("=============================服务返回值==============================");
                var content = responses.Content.ReadAsStringAsync().Result;

                Console.WriteLine(content);
            } 
        }
    }
}

  

Html使用IdentServer例子

IdentServer2 使用不同方式实现(swagger+client+html+postman)

 

 

IdentServer2 使用不同方式实现(swagger+client+html+postman)

<html>
  <head>
    <title>identsever_test</title> 
  </head>
  <body> 
	<div id="newplay"></div> 
	<script src="jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
		// localStorage.setItem('uid','10001');
		// var uid = localStorage.getItem('uid');
		// localStorage.removeItem('uid');
		// localStorage.clear();
		// 遍历
		// localStorage.uid = 1;
		// localStorage.sex='nan';
		// localStorage.age = 23;
		// for ( var i = 0, len = localStorage.length; i < len; ++i ) {
		// console.log( localStorage.key( i ) +':' + localStorage.getItem(localStorage.key( i ))  );
		//}
		
		var token = "http://localhost:5100/connect/token";
		var siteinfo = "http://localhost:5001/api/";

		identity_init();
		
		function identity_init() { 
			
			var data = {
                username: "system",
                password: "system",
                grant_type: 'password',
                client_id: 'apiClientPassword',
                client_secret: 'apiSecret'
            };
			
			$.ajax({
				url: token,
				method: 'POST',
				data: data,
				header: { "content-type": "application/x-www-form-urlencoded" },
				success(res) {
					console.log("get token success:"); 
					console.log(res); 
					var access_token = res.access_token; 
					localStorage.setItem('access_token', access_token); 
				},
				fail(res) {
					console.log(res);
				},
				complete(res) {
					console.log(res);
				}
			})
			
			var access_token = localStorage.getItem('access_token');
			$.ajax({
				url: siteinfo +  "Main/HelloString",
				method: 'GET',
				beforeSend: function (request) {
					request.setRequestHeader("Authorization", "Bearer " + access_token);
				},
				success(res) {
					console.log("get webapi success:"); 
					console.log(res);
				},
				fail(res) {
					console.log(res)
				},
				complete(res) {
					console.log(res);
				}
			}) 
		}  
    </script>
  </body>

  

PostMan使用IdentServer例子

 

IdentServer2 使用不同方式实现(swagger+client+html+postman)

 

 

IdentServer2 使用不同方式实现(swagger+client+html+postman)

 

 代码结构

IdentServer2 使用不同方式实现(swagger+client+html+postman)

 

脚本宝典总结

以上是脚本宝典为你收集整理的IdentServer2 使用不同方式实现(swagger+client+html+postman)全部内容,希望文章能够帮你解决IdentServer2 使用不同方式实现(swagger+client+html+postman)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: