zoukankan      html  css  js  c++  java
  • .NetCore源码阅读笔记系列之Security (四) Authentication & AddJwtBearer

    接下来我们在来看下AddJwtBearer,这个与AddOpenIdConnect不太一样,后者是远程发起身份认证请求是一种主动发起式的,多用于web等客户端,验证发生在身份认证服务端,而前者是一种被动接受,比如接受一个Token并根据某种规则校验,多用于服务性质的接口,而校验发生在服务本生

    与前面一样,我们只关注JwtBearerHandler的处理即可

    在JwtBearer中,我们可以通过自定义Token,并不一定需要接受来之Headers中 Authorization 中的 Bearer

    先说第一种情况

     public virtual Task MessageReceived(MessageReceivedContext context) => OnMessageReceived(context);
    
            public virtual Task TokenValidated(TokenValidatedContext context) => OnTokenValidated(context);

    我们重写JwtBearerEvents中的相关方法就可以指定我们自己的Token接受来源以及校验方式,这里需要注意的如果我们的服务需要跟对的用户身份信息的话还需要将需要的身份信息写入到token中以便于解析后写入到Principal身份信息中,最后在代码中处理业务

    当然第二种方式就是通用的接受Headers中 Authorization 中的 Bearer,通过JwtBearer中的配置的信息SigningKeys、ValidIssuers 然后使用SecurityTokenValidators去读取Token信息,如果OK 那么同之前一样将身份信息写到 Principal,如果需要保存Token,这里采用的就是 Token信息写入到了 access_token 中,这里服务中如果需要得到这个access_token的话需要这样来处理

      string token = await httpContextAccessor.HttpContext.GetTokenAsync("access_token");

    通过得到这个token,我们就可以在一个服务中去请求其他的服务

  • 相关阅读:
    迷宫与宝藏
    黑暗城堡
    Escaping the Farm
    Word Search
    描述
    防范sql注入值得注意地方
    fineui 实现下拉框模糊查询
    Fineui 根据datatable结构动态创建grid列,帮助类。动态绑定grid。
    Fineui 实现点击左边树状主菜单链接 打开新窗口或打开多个同一个tab
    fineui grid自定义选项框 带全选
  • 原文地址:https://www.cnblogs.com/liyouming/p/10006434.html
Copyright © 2011-2022 走看看