代码改变世界

IdentityServer4:IdentityServer4+API+Client+User实践OAuth2.0密码模式(2)

2017-08-28 16:21  huoit  阅读(1238)  评论(0编辑  收藏  举报

一、密码模式实操

仍然使用第一节的代码;做如下改动:

1、授权服务端

前面我们使用项目:Practice.IdentityServer作为授权服务器

修改项目的Config.cs类;

添加测试用户,并给其用户名密码(其他Claim);TestUser是IdentityServer给我们的测试抽象用户类;实际可自行定义

.........
 public static List<TestUser> GetUsers()
        {
            return new List<TestUser>
            {
               new TestUser
               {
                   SubjectId="1",
                   Username="baobao",
                   Password="123456"
               }
            };
        }

添加一个客户端

 

修改Startup.cs;

这里AddTestUser会给授权服务端增加各类支持用户(RO)的密码支持

 

客户端

修改Program.cs;如下密码模式;

 

运行效果:

 

二、概念解析

 

密码模式:用户就是ResourceOwner,用户提供给Client自己的账户密码,然后Client拿着账户密码向授权服务器(AS)请求token令牌,拿到令牌后访问api资源;就是这么简单;

原始的Http请求方法可以仍然使用Postman实践一下;