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. Linux内核模块简介
  2. [.net]webform 版本冲突
  3. 关于Oracle Developer 的 DBMS_OUTPUT.PUT_LINE 输出问题
  4. Cloud for Customer的shell布局介绍
  5. WebSocket服务器和客户端的一对多连接
  6. w3cschool php 调整图片尺寸,PHP_php修改上传图片尺寸的方法,本文实例讲述了php修改上传图 - phpStudy...
  7. 华为鸿蒙osbeta发布会,华为鸿蒙 OS Beta 3
  8. 后处理编辑修改_Abaqus Python二次开发:内核脚本的快捷编辑方式
  9. java runtime environment 55_jre7下载|Java Runtime Environment(Java运行环境JRE)JRE7 官方版_ - 极光下载站...
  10. Recurrent Neural Network(3):LSTM Basics and 《Inside Out》
  11. java引用队列_java的强引用、软引用、弱引用、幻象引用,引用队列总结
  12. C语言各类位操作用法
  13. 为 Retrofit2 提供的 FastJson 转换库
  14. Python实战之路-day6
  15. 计算机技能大赛简报,网络攻防比赛简报
  16. js 实现一个打点计时器
  17. [基础服务] 常用邮箱服务地址
  18. 《明日方舟》游戏分析
  19. python采用强制缩进的方式使得代码具有极佳的可读性_python3的优势有哪些
  20. 总文件夹下含有多个sdf,批量转换为SMILES并保存到csv中

热门文章

  1. SINS/GNSS组合导航仿真应用详细版(基于PSINS工具箱 )
  2. 这届程序YUAN可太优秀了
  3. 个人永久性免费-Excel催化剂功能第91波-地图数据挖宝之行政区域信息实时下载(含经纬度)...
  4. OpenCV库中watershed函数(分水岭算法)的详细使用例程
  5. docker cuda的devel和runtime包
  6. 小程序员近五年工作总结
  7. unbuntu 18.04 无法安装mkcramfs
  8. 搜索引擎优化——通向成功的十步
  9. AWS Python Lambda 使用 Layer
  10. 前端培训机构哪家强?