一、密码模式实操
仍然使用第一节的代码;做如下改动:
1、授权服务端
前面我们使用项目:Practice.IdentityServer作为授权服务器
修改项目的Config.cs类;
添加测试用户,并给其用户名密码(其他Claim);TestUser是IdentityServer给我们的测试抽象用户类;实际可自行定义
.........
public static List<TestUser> GetUsers()
{
return new List<TestUser>
{
new TestUser
{
SubjectId="",
Username="baobao",
Password=""
}
};
}
添加一个客户端
修改Startup.cs;
这里AddTestUser会给授权服务端增加各类支持用户(RO)的密码支持
客户端
修改Program.cs;如下密码模式;
运行效果:
二、概念解析
密码模式:用户就是ResourceOwner,用户提供给Client自己的账户密码,然后Client拿着账户密码向授权服务器(AS)请求token令牌,拿到令牌后访问api资源;就是这么简单;
原始的Http请求方法可以仍然使用Postman实践一下;