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

时间:2025-04-01 21:03:31

一、密码模式实操

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

1、授权服务端

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

修改项目的Config.cs类;

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

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

添加一个客户端

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

修改Startup.cs;

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

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

客户端

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

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

运行效果:

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

二、概念解析

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

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

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