IdentityServer4密码模式

IdentityServer4密码模式Oatuth2 协议的密码模式介绍 用户会将用户名 密码给予客户端 但是客户端不保存此信息 客户端带着用户的密码请求认证服务器 认证服务器密码验证通过后后将 token 返回给客户端 这里借用下阮一峰老师画的图 博客地址 http www ruanyifeng com blog 2014 05 oauth 2 0 html IdentityServ 密码模式实现 我们不需要修改资源服务器 我们在客户端模式下的认证服务器的 Confi

Oatuth2协议的密码模式介绍

    •  这里借用下阮一峰老师画的图(博客地址=》http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html)
    • IdentityServer4密码模式

    用户会将用户名,密码给予客户端,但是客户端不保存此信息,客户端带着用户的密码请求认证服务器,认证服务器密码验证通过后后将token返回给客户端。

 

IdentityServer4密码模式实现

  • 我们不需要修改资源服务器,我们在客户端模式下的认证服务器的Config配置中,添加一个Client,允许我们使用密码模式访问授权服务器获取token,再添加一个测试用户。同时修改我们的startup,在ConfigureServices方法中配置测试用户,代码如下所示:
 //定义可以访问该API的客户端 public static IEnumerable 
  
    GetClients() { return new List 
   
     { new Client() { ClientId = "client", AllowedGrantTypes = GrantTypes.ClientCredentials, //设置模式,客户端模式 ClientSecrets = { new Secret("secret".Sha256()) }, AllowedScopes = { "api1" } }, new Client() { ClientId="pwdClient", AllowedGrantTypes=GrantTypes.ResourceOwnerPassword, //密码模式 ClientSecrets= {new Secret("secret".Sha256()) }, AllowedScopes= { "api1" } } }; } public static List 
    
      GetTestUsers() { return new List 
     
       { new TestUser { SubjectId="1", Username="lmc", Password="" } }; } public void ConfigureServices(IServiceCollection services) { services.AddIdentityServer() .AddDeveloperSigningCredential() .AddInMemoryApiResources(Config.GetApiResources()) //配置资源 .AddInMemoryClients(Config.GetClients()) //配置客户端 .AddTestUsers(Config.GetTestUsers()); //配置测试用户 services.AddMvc(); } 
      
     
    
  

此时我们使用我们定义的用户名和密码来访问我们的授权服务器(这里使用postman 要注意body的数据格式为x-www-form-urlencoded)=》

IdentityServer4密码模式

带着我们拿到的token,去访问资源=》

IdentityServer4密码模式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206195.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午4:14
下一篇 2026年3月19日 下午4:15


相关推荐

  • org.apache.subversion.javahl.ClientException: Item is not readable 解决办法

    org.apache.subversion.javahl.ClientException: Item is not readable 解决办法

    2022年3月13日
    86
  • Linux卸载Anaconda

    Linux卸载AnacondaLinux 卸载 Anaconda

    2026年3月19日
    3
  • MT4行情交易API接口开发手记

    MT4行情交易API接口开发手记之前开发的外汇量化交易系统,行情和交易接口都是通过在MT4平台下编写EA来实现,具体方法是:1、用C++编写一个动态库文件,在里面实现行情和交易数据调用接口,将报价数据和K线数据写入数据库中,并从数据库中获取外汇量化系统发出的交易指令。2、在MT4中编写EA文件,在MT4上不间断运行,从MT4平台实时获取报价和K线数据,并调用动态库写入数据库中,于此同时,不断从数据库中获取交易指令,再调用MT4的交易指令完成交易。采用此种方法的好处就是兼容性强,只要打开MT4软件运行EA,就可以完成行情和交易接..

    2022年5月30日
    166
  • 树莓派4B安装Tensorflow(Python3.5和3.7下分别进行安装)

    树莓派4B安装Tensorflow(Python3.5和3.7下分别进行安装)【前言】虽然树莓派的速度不如PC,但是它功耗小、价格便宜,很多同学都用来学习机器学习的相关课程,而且tensorflow官方是支持树莓派,我们可以直接在树莓派上进行学习。网上的现在树莓派已经发布4B,新版本的rasbian系统全面采用了python3.7,但是网上大多数教程还是基于树莓派3的,使用python3.5进行安装。我使用的是树莓派4B和2019-06-20-raspb…

    2022年6月4日
    60
  • 安卓手机修改ntp服务器,修改安卓手机ntp服务器地址「建议收藏」

    安卓手机修改ntp服务器,修改安卓手机ntp服务器地址「建议收藏」修改安卓手机ntp服务器地址内容精选换一换TTL(Time-To-Live)指解析记录在本地DNS服务器中的缓存时间。本地DNS服务器指用户客户端(手机、电脑等)连接Internet网络使用的DNS,默认使用的DNS是宽带运营商自动分配的DNS服务器,用户也可以将该DNS修改为公共DNS服务器,例如,114.114.114.114、8.8.8.8。通过华为云购买的弹性云服务器默认硬件要求如表1所…

    2022年6月9日
    254
  • MYSQL库,表,记录的基本操作

    数据库操作1、显示数据库默认数据库:mysql-用户权限相关数据test-用于用户测试数据information_schema-MySQL本身架构相关数据2、创建数据库3、使

    2022年3月29日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号