• IdentityServer4密码模式接入现有用户数据表


    具体接入identityserver请看文档,这里只简单列举部分步骤
    1.创建一个web项目,引入Identityserver4的nuget包
    2.新建一个类,实现IResourceOwnerPasswordValidator接口
    ···csharp
    public async Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
    {
    VerifyUserInputDto inputDto = new VerifyUserInputDto
    {
    UserName = context.UserName,
    Password = context.Password
    };
    var verifyResult = await _userService.VerifyUserPasswordAsync(inputDto);
    if (verifyResult.isSuccess)
    {
    context.Result = new GrantValidationResult(verifyResult.userInfo.UserId.ToString(), OidcConstants.AuthenticationMethods.Password);
    }
    else
    {
    //验证失败
    context.Result = new GrantValidationResult(TokenRequestErrors.InvalidGrant, "invalid custom credential");
    }
    }

    大致就是读取数据库数据,与context.username ,password,进行比对,一致则通过,不一致就是失败。
    3.Starpup中增加
    ···csharp
    services.AddIdentityServer()
                      .AddInMemoryApiResources(你定义的资源)
                      .AddInMemoryClients(你定义的客户端)
                      .AddResourceOwnerValidator<ResourceOwnerPasswordValidator>() //主要是user这里替换我们自己的服务
                      .AddDeveloperSigningCredential(); // rsa密钥,自动生产一个临时的。
    

    4.api项目中 配置好identityserver ,Post请求 identityserver 下connect/token 这个地址 获取token, 记得在设置token的时候加上 Bearer 前缀 否则token是无效的!!

  • 相关阅读:
    一个简单的window.onscroll实例
    vue 自定义组件使用v-model
    vue开发后台管理系统有感
    cube打包后css顺序错误
    app嵌套的vue项目更新后,页面没有更新
    vue打包后css背景图片地址找不到
    git取消操作命令
    cube-ui indexList的正确使用
    首次db查询时延迟明显高于后面几次。
    git中的merge与rebase
  • 原文地址:https://www.cnblogs.com/zzqvq/p/11180926.html
Copyright © 2020-2023  润新知