首页 > 其他分享 >封装JWT - 生成 jwt 和解析 jwt

封装JWT - 生成 jwt 和解析 jwt

时间:2023-11-05 09:55:05浏览次数:27  
标签:Core 控制器 ASP 封装 admin jwt JWT NET

1. ASP.NET Core 身份验证和授权验证的功能由Authentication,Authorization中间件提供 :app.UseAuthentication(),app.UseAuthorization()。

2. 控制器类上标注[Authorzie]的控制器则所有的操作方法都会被进行身份验证和授权验证,对于对标注了[Authorize]的控制器类,如果某个方法不想被任何验证,可以在操作方法上添加 [AllowAnonymous];

ps:不标注Authorzie的可以随意访问 ;

3. ASP.NET Core 会按照HTTP协议的规范,从Authorization中取出来令牌 token,并且进行校验,解析结果填充到User属性中,这一切都是ASP.NET Core 完成的, 不需要开发人员自己写代码,但是出现 401 错误的报错信息很难排查;

4. 控制方法不只是先登录由了token 还要请求是管理员登录才能调用的接口,即普通用户访问 403 没有权限访问这个接口,

方案:添加 new Claim 的时候架上 name 为 Role value 是 admin ;claim.Add(new Claim(ClaimTypes.Roles, "admin"));  然后在方法上添加 [Authorize(Roles = 'admin')];   [ RBAC ]

 

标签:Core,控制器,ASP,封装,admin,jwt,JWT,NET
From: https://www.cnblogs.com/zhulongxu/p/17810255.html

相关文章

  • java 类和对象以及封装
    封装对象代表什么,就得封装对应的数据,并提供数据对应的行为......
  • 封装函数
    //编写程序,获取数组中的最大值//functionarr(arr){//varmax=[];//for(vari=0;i<arr.length;i++){//if(arr[i]>max){//max=arr[i]//}//}//returnmax;//......
  • C++类成员的访问权限以及类的封装
    C++通过public、protected、private三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。所谓访问权限,就是你能不能使用该类中的成员。Java、C#程序员注意,C++中的public、private、protected只能修饰类的成员,不能修饰类......
  • axum 集成 JWT
    Jsonwebtoken(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC7519),该token被设计为紧凑且安全的,特别适用于分布式站点的单点登陆(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加......
  • jwt生成token及拦截器解析token
    添加依赖<!--jwt加密--><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.10.3</version></dependency>......
  • Response封装
    Response封装classAPIResponse(Response):def__init__(self,code=100,msg='成功',data=None,status=None,headers=None,**kwargs):dic={'code':code,'msg':msg}ifdata:dic={'code':cod......
  • 封装一个Drawers 抽屉弹窗组件
    用elementuiDrawer组件封装一个Drawers抽屉弹窗组件,里面新增了一些属性,例如框的宽度等红色为Drawers组件子组件Drawers<template><el-drawerv-if="showable":visible.sync="showable"direction="rtl":wrapperClosable="false"size......
  • 封装高精板子
    #include<bits/stdc++.h>usingnamespacestd;constintmaxn=5005;structbign{intlen,s[MAXN];bign(){memset(s,0,sizeof(s));len=1;}bign(intnum){*this=num;}bign(constch......
  • 封装a-select下拉增加复选框,支持全选和取消全选
    由于select下拉框中内容过多,使用下拉一个一个选取太过于麻烦,所以在下拉中增加全选和取消全选操作,增加复选框选择。版本  vue3   [email protected].我们在看AntDesignVue官网中,可以发现这个dropdownRender,它可以定义下拉框中的内容。 2.封装vue组件<template......
  • 用go封装一下临时token
    用go封装一下临时token本篇为用go设计开发一个自己的轻量级登录库/框架吧的临时token篇,会讲讲临时token的实现,给库/框架增加新的功能。Github:https://github.com/weloe/token-go临时token也算是比较常见的业务,例如登录验证码信息,邀请链接等等,都属于临时token的范畴。在token-......