C# 中 JWT 包的初步使用

本文介绍了一个针对.NET平台的JSON Web Token(JWT)实现库,并提供了如何使用该库生成和解析JWT的具体示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JWT,a JWT(JSON Web Token) implementation for .NET

该库支持生成和解析JSON Web Token

安装

你可以直接通过Nuget获取,也可以自己下载和编译源码.

支持的 .NET Framework 版本

  • .NET Framework 4.6.0
  • .NET Standard 1.3

使用

// 不要忘了 using
using JWT;
using JWT.Algorithms;
using JWT.Builder;

// 自定义秘钥
// jwt 的生成和解析都需要使用
const string secret = "GQDstcKsx0NHjPOuXOYg5MbeJ1XT0uFiwDVvVBrk";

创建 JWT

// 使用 JwtBuilder 来生成 token
string token = new JwtBuilder()
	.WithAlgorithm(new HMACSHA256Algorithm()) // 使用算法
	.WithSecret(secret) // 使用秘钥
	.AddClaim("exp", DateTimeOffset.UtcNow.AddHours(1).ToUnixTimeSeconds())
	.AddClaim("claim2", "claim2-value")
	.Build();

Console.WriteLine(token);

生成的 token 如下:

// 注意:是通过.符号分隔成3段,分别对应的是header.payload.signature
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1Mjg3MjA2NTEsImNsYWltMiI6ImNsYWltMi12YWx1ZSJ9.56xcZALlJuwROe3qssCbe_DDjpQShk-Ik7kWAzONWFU

解析 JWT

// 使用 JwtBuilder 来解析 token
try
{
	string json = new JwtBuilder()
		.WithSecret(secret)
		.MustVerifySignature()
		.Decode(token);
	
	Console.WriteLine(json);
}
catch (TokenExpiredException)
{
	Console.WriteLine("token 已过期");
}
catch (SignatureVerificationException)
{
	Console.WriteLine("token 签名无效");
}

解析后得到的 json 字符串如下:

{	
	"exp": 1528721303,
	"claim2": "claim2-value"
}

参考文档

转载于:https://my.oschina.net/taadis/blog/1828386

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值