(2)- IdentityServer 4 授权端 - (动态)账户密码模式搭建(.net core 3.1)

本文前提说明

  • 本文在文章:(1)- IdentityServer 4 授权端 - (静态)账户密码模式搭建(.net core 3.1)的基础上构建

新建数据库,并新建服务(SystemAccountService.cs)可访问到数据

  • 该流程忽略,数据库访问可以使用Dapper、SqlSugar等
  • 数据库的表数据如下:账户:admin,密码:123456
数据库的表数据

在根目录下新建类(ResourceOwnerValidator.cs)

  • 编辑内容如下
public class ResourceOwnerValidator : IResourceOwnerPasswordValidator
{
    public Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
    {
        if (new SystemAccountService().IsExist(context.UserName, context.Password))
        {
            context.Result = new GrantValidationResult(subject: context.UserName, authenticationMethod: OidcConstants.AuthenticationMethods.Password);
        }
        else
        {
            context.Result = new GrantValidationResult(TokenRequestErrors.InvalidGrant, "无效的秘钥");
        }
        return Task.FromResult("");
    }
}

修改StartUp.cs的内容如下

修改动态验证用户密码

使用Postman验证

  • 错误的账户密码
错误的账户密码
  • 正确的账户密码
正确的账户密码

你可能感兴趣的:((2)- IdentityServer 4 授权端 - (动态)账户密码模式搭建(.net core 3.1))