当前位置: 首页 > news >正文

jwt 验证方法 (ASP.NET Core)

一、安装包

  <ItemGroup><PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.18" /></ItemGroup>

二、实现,生成secretKey和jwtToken,可以在线生成

JWT在线解码/编码工具 - 解析、验证、生成JSON Web Token

Program.cs


using System.Security.Claims;var secretKey = "50nZpLVvKQ1WYkhSCTiO3LvdCr0G8hcaQF4pUIkOJNfvBFiMKvI4zXnWTPkDsel7QH3vtfF224kKFe84IFalDQ==";
var jwtToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNzUzNDUwMDMwLCJuYmYiOjE3NTM0NTAwMzAsImV4cCI6MTc1MzQ1MzYzMH0.tCkEzCh6N6XU9_YQ7manDo3zr2_Xz3wIWNfYqqKdDQI";var validator = new JwtValidator(secretKey);
var principal = validator.ValidateToken(jwtToken);if (principal != null)
{Console.WriteLine("Token is valid!");Console.WriteLine($"Subject: {principal.FindFirst(ClaimTypes.NameIdentifier)?.Value}");Console.WriteLine($"Name: {principal.FindFirst(ClaimTypes.Name)?.Value}");
}
else
{Console.WriteLine("Token is invalid!");
}

添加类:JwtValidator.cs

using System;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using Microsoft.IdentityModel.Tokens;public class JwtValidator
{private readonly string _secretKey;private readonly string _issuer;private readonly string _audience;public JwtValidator(string secretKey, string issuer = null, string audience = null){_secretKey = secretKey;_issuer = issuer;_audience = audience;}public ClaimsPrincipal ValidateToken(string token){try{var tokenHandler = new JwtSecurityTokenHandler();var key = Encoding.ASCII.GetBytes(_secretKey);var validationParameters = new TokenValidationParameters{ValidateIssuerSigningKey = true,IssuerSigningKey = new SymmetricSecurityKey(key),ValidateIssuer = !string.IsNullOrEmpty(_issuer),ValidIssuer = _issuer,ValidateAudience = !string.IsNullOrEmpty(_audience),ValidAudience = _audience,ValidateLifetime = true,ClockSkew = TimeSpan.Zero};SecurityToken validatedToken;return tokenHandler.ValidateToken(token, validationParameters, out validatedToken);}catch (SecurityTokenException ex){// Token 验证失败Console.WriteLine($"Token validation failed: {ex.Message}");return null;}catch (Exception ex){// 其他异常Console.WriteLine($"Error validating token: {ex.Message}");return null;}}}

http://www.dtcms.com/a/298130.html

相关文章:

  • Android 15中的16KB大页有何优势?
  • 使用vllm创建相同模型的多个实例,使用nginx进行负载均衡,提高模型吞吐量
  • 浅谈数字花园
  • jenston nano+conda+pytorch的部署办法
  • 一次“非法指令”(SIGILL)问题的完整调试过程:CPU指令集兼容性探秘
  • Windows Server 2003 R2系统C盘扩容教程
  • 本地部署Dify教程
  • 软件工程之可行性研究:从理论到实践的全面解析
  • Tomcat线程池深度优化指南:高并发场景下的maxConnections计算与监控体系
  • 当人机交互迈向新纪元:脑机接口与AR/VR/MR的狂飙之路
  • 管理 GitHub Pages 站点的自定义域(Windows)
  • 【Web】DASCTF 2025上半年赛 wp
  • 牛客刷题记录01
  • 软件工程的工具链演进
  • Lua(数据库访问)
  • (CVPR 2025 )基于学习的自动HSI光谱校准方法
  • [CSS]让overflow不用按shift可以滚轮水平滚动(纯CSS)
  • 【氮化镓】GaN取代GaAs作为空间激光无线能量传输光伏转换器材料
  • SQL server 2019删除重建用户
  • Dify数据可视化-AntV Visualization Chart
  • 「iOS」——多线程原理总结
  • Codeforces Round 735 (Div. 2) D. Diane
  • 页面实时数据更新(进入页面或者浏览器后退前进状态刷新页面)
  • 单目云台是一种安防监控设备,它通常配备一个摄像机,用于实现远程监控和目标追踪
  • nacos的配置中心
  • MySQL性能优化配置终极指南
  • 算法讲解--有效三角形的个数
  • 将本地项目推送到远程github仓库
  • Promise的allSettled,all,race
  • RCE真实漏洞初体验