zoukankan      html  css  js  c++  java
  • 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是无效的!!

  • 相关阅读:
    面试中遇到的几道逻辑题目
    [转]计算机专业人工智能方向——研究生面试需知的十大问题
    new、delete、析构函数、自动类型转换
    第三章 传输层
    年后排序+ST表+ksm+矩阵ksm+斐波那契数列矩阵ksm+归并排序
    DP斜率优化
    DP现阶段优化
    平衡树(一)——二叉搜索树
    NOIP 2017-day2
    2017 NOIP2017 day 1
  • 原文地址:https://www.cnblogs.com/zzqvq/p/11180926.html
Copyright © 2011-2022 走看看