jwt加密:

using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using IdentityModel;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;/// <summary>
/// jwt加密
/// </summary>
/// <param name="data">加密内容</param>
/// <param name="key">加密秘钥</param>
/// <returns>加密字符串</returns>
public string Token(string data ,string key){/*** Claims (Payload)Claims 部分包含了一些跟这个 token 有关的重要信息。 JWT 标准规定了一些字段,下面节选一些字段:Issuer: The issuer of the token,token 是给谁的  发送者audience: 接收的subject: The subject of the token,token 主题Expires: Expiration Time。 token 过期时间,Unix 时间戳格式IssuedAt: Issued At。 token 创建时间, Unix 时间戳格式NOtBefore: 生效时间除了规定的字段外,可以包含其他任何 JSON 兼容的字段。* */var tokenDescriptor = new SecurityTokenDescriptor{Subject = new ClaimsIdentity(new Claim[]{new Claim(JwtClaimTypes.Audience,"Client2")}),// 加密的内容Expires = expiresAt,//过期时间SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.ASCII.GetBytes(key)), SecurityAlgorithms.HmacSha256Signature)//秘钥};var token = tokenHandler.CreateToken(tokenDescriptor);var tokenString = tokenHandler.WriteToken(token);return tokenString ;}

jwt解密:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using IdentityModel;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.IdentityModel.Tokens;namespace WebApiJwtDemo
{public class Startup{public void TokenDecrypt(string token,string key){string result= string.Empty;//加密内容try{ClaimsPrincipal principal = new ClaimsPrincipal();JwtSecurityToken jwt = null;var handler = new JwtSecurityTokenHandler();jwt = handler.ReadJwtToken(token);// 根据token是否正常解析if(jwt == null){return "";}// 验证token是否有效var TokenValidationParameters = new TokenValidationParameters{ValidIssuer = "发送者(TokenCreate)",ValidAudience = "接收者(TokenServer)",IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(key)),RequireExpirationTime = true,ClockSkew = TimeSpan.Zero,ValidateLifetime = true/***********************************TokenValidationParameters的参数默认值***********************************/// RequireSignedTokens = true,// SaveSigninToken = false,// ValidateActor = false,// 将下面两个参数设置为false,可以不验证Issuer和Audience,但是不建议这样做。    // ValidateAudience = true,// ValidateIssuer = true, // ValidateIssuerSigningKey = false,// 是否要求Token的Claims中必须包含Expires// RequireExpirationTime = true,// 允许的服务器时间偏移量,默认300秒// ClockSkew = TimeSpan.FromSeconds(300),// 是否验证Token有效期,使用当前时间与Token的Claims中的NotBefore和Expires对比// ValidateLifetime = true};SecutityToken sercutityToken = null;// 验证token是否有效,如果过期,报错SecurityTokenExpiredException// 报错信息:IDX10223 : Lifetime validation failedprincipal = handler.ValidateToken(token, TokenValidationParameters ,out securityToken);if(principal !=null && principal.Claims.Count() > 0){Claim claim = principal.Claims.First();result = claim.Value;}}catcy(SecurityTokenExpireException ex){//可以在这写续期代码}return result;}}
}注册TOKEN

JWT认证方式之-System.IdentityModel.Tokens.Jwt相关推荐

  1. Asp.net Core认证和授权:JWT认证和授权

    JWT验证一般用户移动端,因为它不像cookie验证那样,没有授权跳转到登陆页面 JWT是json web token的简称,在  jwt.io 网址可以看到 新建一个API项目,通过postman ...

  2. .NET Core 集成JWT认证

    JWT(Json web token)就不用过多的介绍了,在 .NET Core 开发中使用JWT进行认证也是比较常见的,而且接入过程也比较简单,随便配置配置就好了. 要想使用JWT,仅仅只需要在项目 ...

  3. Dotnet core使用JWT认证授权最佳实践(一)

    最近,团队的小伙伴们在做项目时,需要用到JWT认证.遂根据自己的经验,整理成了这篇文章,用来帮助理清JWT认证的原理和代码编写操作. 一.JWT JSON Web Token (JWT)是一个开放标准 ...

  4. .net core 学习小结之 JWT 认证授权

    新增配置文件 {"Logging": {"IncludeScopes": false,"Debug": {"LogLevel&qu ...

  5. ASP.Net Core 3.1 中使用JWT认证

    JWT认证简单介绍 关于Jwt的介绍网上很多,此处不在赘述,我们主要看看jwt的结构. JWT主要由三部分组成,如下: HEADER.PAYLOAD.SIGNATURE HEADER包含token的元 ...

  6. 在https上面使用ws不加密_ASP.NET Core 3.1 中使用JWT认证

    转自:小伟06cnblogs.com/liuww/p/12177272.html JWT认证简单介绍 关于Jwt的介绍网上很多,此处不在赘述,我们主要看看jwt的结构. JWT主要由三部分组成,如下: ...

  7. Net Core 3.1 中使用JWT认证

    JWT认证简单介绍 关于Jwt的介绍网上很多,此处不在赘述,我们主要看看jwt的结构. JWT主要由三部分组成,如下: HEADER.PAYLOAD.SIGNATURE HEADER包含token的元 ...

  8. GoWeb 项目实战:使用 Iris 框架构建一个安全可靠的 API 服务(附 JWT 认证实现)

    1.前言 我们知道,http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还要再一次进行用户认证才行,因为根据http协议,我们并 ...

  9. sau交流学习社区--songEagle开发系列:Vue.js + Koa.js项目中使用JWT认证

    一.前言 JWT(JSON Web Token),是为了在网络环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519). JWT不是一个新鲜的东西,网上相关的介绍已经非常多了.不是很了解的 ...

最新文章

  1. hdu4280 最大流DINIC
  2. C# 框架是什么?MVC是什么 ?工厂模式是什么?设计模式是什么?三层架构是什...
  3. 长沙校园招聘总结-做为技术面试官
  4. 用计算机连接路由器,用路由器怎么连接两台电脑
  5. C++primer第十章 泛型算法 10.1 概述 10.2 初识泛型算法
  6. linux内核实现ipsec,IP XFRM配置示例:利用linux kernel自带的IPSec实现,手动配置IPSec...
  7. 信息学奥赛一本通 1839:【05NOIP提高组】谁拿了最多奖学金 | OpenJudge NOI 1.9 04:谁拿了最多奖学金 | 洛谷 P1051 [NOIP2005 提高组] 谁拿了最多奖学金
  8. ArcEngine坐标操作那些事
  9. Sentinel系统规则_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0044
  10. 订阅发布可靠吗_华辉人力资源可靠吗?发布的招聘信息是否可靠?
  11. [转-SSRF]什么是SSRF
  12. 曲面化原理创新设计_曲面丝印机会给我们带来什么样的美丽
  13. 兔子未来的方向在哪里
  14. Centos中如何配置Texlive2013中文字体的问题
  15. 如何从计算机中删除 Exchange Server 2003
  16. 超详细的测试理论基础知识
  17. Ubuntu 16.04 安装并创建快捷图标 XMind
  18. minitools在win10上安装失败
  19. iNode客户端“未收到服务器回应,即将强行下线,请检查终端能否正常访问网络或者与管理员联系”问题与解决方式
  20. 拥抱大数据生活更智能

热门文章

  1. (高版本)浏览器获取cookie信息-升级版
  2. 加载google Z-Xing库实现二维码解析与生成,并将解析结果在另一页面显示
  3. Redux中的Reducers
  4. js实现自定义title提示效果
  5. 10.(leaflet之家)leaflet暗色系地图样式地图(滤镜实现,反色滤镜)
  6. 【软切换】WCDMA软切换技术的仿真
  7. PS CC2018 命令大全
  8. Effective C++ 规则39:明智而谨慎的使用private继承
  9. 好用的桌面便签工具-Microsoft便笺
  10. 立创开源丨基于GD32E230C8T6芯片的开发评估板