zoukankan      html  css  js  c++  java
  • Swagger+IdentityServer4测试授权验证

    1、Bearer授权操作,添加如下代码

      services.AddSwaggerGen(options =>
                   {
         options.AddSecurityDefinition("Bearer", new ApiKeyScheme
                       {
                           Description = "JWT Bearer 授权 "Authorization:     Bearer+空格+token"",
                           Name = "Authorization",
                           In = "header",
                           Type = "apiKey"
                       });
    
        });        

    可以看到swagger的授权按钮:

    点击授权按钮:

    填写授权的access_token授权

    2、OAuth2授权,配置好相关的客户端

    添加授权类:

     /// <summary>
        /// IdentityServer4认证处理
        /// </summary>
        public class IdentityServer4OAuth2OperationFilter : IOperationFilter
        {
            public void Apply(Operation operation, OperationFilterContext context)
            {
               
                if (operation.Security == null)
                    operation.Security = new List<IDictionary<string, IEnumerable<string>>>();
                var oAuthRequirements = new Dictionary<string, IEnumerable<string>>
                                            {
                                              
                                                  {"oauth2", new List<string> { "openid", "profile", "UserServicesApi" }}
                                            };
                operation.Security.Add(oAuthRequirements);
            }
        }
    options.AddSecurityDefinition("oauth2", new OAuth2Scheme
                       {
                          Type = "oauth2",
                          Flow = "implicit",
                         AuthorizationUrl = "http://localhost:30000/connect/authorize",
                        Scopes = new Dictionary<string, string>
                           {
                               { "UserServicesApi", "用户服务" }
                          }
                      });
    
                       options.OperationFilter<IdentityServer4OAuth2OperationFilter>();

    授权如下,点击授权会转到授权页面

    来看下地址:

    http://localhost:30000/Account/Login
    ?ReturnUrl=%2Fconnect%2Fauthorize%2Fcallback%3F
    response_type%3Dtoken%26
    client_id%3Dxujiemingapi%26
    redirect_uri%3Dhttp%253A%252F%252Flocalhost%253A20001%252Fswagger%252Foauth2-redirect.html%26scope%3DUserServicesApi%26state%3DRnJpIE1heSAxMSAyMDE4IDE4OjE0OjE4IEdNVCswODAwICjkuK3lm73moIflh4bml7bpl7Qp

    登录授权后成功

    
    
    
  • 相关阅读:
    js基础整理总结
    pyinstaller打包django项目成exe以及遇到的一些问题
    Django对接SQL Server服务
    死锁
    python 之路
    Python注释
    Django2.1迁移数据库出错
    一行 Python 代码实现并行
    【转载】Python 类定义与对象
    关于盒模型布局在UC上的兼容处理
  • 原文地址:https://www.cnblogs.com/liyouming/p/9026101.html
Copyright © 2011-2022 走看看