• 四、JWT详解(core 2.2版)







    思维导图的地址








    Claim



    创建一个简单的令牌

    声明数组



    调试程序技巧

    当代码进行修改后,自动退出 监控文件被修改,然后启动。

    post测试,生成的token


    加密算法没有

    还是提示 这是一个无效的签名

    虽然生成了token,但是没有数字签名和加密算法。

    通过查看源代码 看到 有5个重写的方法



    这样我们的第三部 ,数字签名部分 就生成了。



    为什么签名还是无效的呢?

    还需要配置密钥。


    复制我们的密钥过来。

    密钥设置为123






    参数的名字,key的大小

    密钥至少是16位的


    只复制第二部分的字符串 放在chrpme的 console里面来解析



    获取jwt中的属性值


    第一种方法需要自己生成一个类去接收

    第二种是通过user对象去获取。

    httpcontext上下文中去获取

    我们的start只是注入了HttpContext。也没有使用其他的中间件。

    发送请求,获取的值都是空的。只有第一种方法获取到了。23这两种方法获取到的是null

    鉴权



    必须在服务里注册一个持票人。





    blogCore项目里面  ,都是配置在配置文件内的

    开启中间件

    如果没有开启呢?

    那就获取不到jwt的值


    开启后

    传递的是token


    这里的 作用是把一个字符串转反序列化成一个jwt的对象




    一定要勾选


    加断点测试

    在上面输入ToList()

    解除.net core对jwt的映射匹配。

    这样我们再去获取,就获取到了email的内容

    测试下 api是否被保护了

    给action加授权。

    不传token访问。返回了401

    带上令牌访问

    如何使用JWT

    无状态的授权,直接用[Autoirize]它不用管你是什么角色和策略。


    例如只有admin这个角色才可以使用


    开启认证。第一步是开启认证AddAuthentication
    第二步是注册AddJwtBearer服务,

    核心就是验证参数的配置

    最后一步,开启中间件

    自己写中间件的方式去认证



    首先是开启自定义中间件的认证。





     

    结束

  • 相关阅读:
    文佳夹之删除
    猜谜小游戏
    python小知识点
    【bzoj4516】[Sdoi2016]生成魔咒 后缀数组+倍增RMQ+STL-set
    【bzoj3362/3363/3364/3365】[Usaco2004 Feb]树上问题杂烩 并查集/树的直径/LCA/树的点分治
    【poj1741】Tree 树的点分治
    【bzoj2946】[Poi2000]公共串 后缀数组+二分
    【bzoj2157】旅游 树链剖分+线段树
    【bzoj2743】[HEOI2012]采花 树状数组
    【bzoj2705】[SDOI2012]Longge的问题 欧拉函数
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/12593306.html
Copyright © 2020-2023  润新知