c#

c# jwtbuilder支持哪些平台

小樊
85
2024-12-12 21:57:16
栏目: 编程语言

JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络之间安全地传输信息。在C#中,可以使用多种库来生成和验证JWT,这些库支持不同的平台。

.NET平台支持情况

其他平台支持情况

示例代码

以下是一个在ASP.NET Core中生成和验证JWT的简单示例:

生成JWT

using System;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using Microsoft.IdentityModel.Tokens;

public string GenerateJwtToken(string secretKey)
{
    var tokenHandler = new JwtSecurityTokenHandler();
    var key = Encoding.ASCII.GetBytes(secretKey);
    var tokenDescriptor = new SecurityTokenDescriptor
    {
        Subject = new ClaimsIdentity(new Claim[]{new Claim(ClaimTypes.Name, "example_user")}}),
        Expires = DateTime.UtcNow.AddDays(7),
        SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature))
    {
        Issuer = "issuer",
        Audience = "audience"
    };
    var token = tokenHandler.CreateToken(tokenDescriptor);
    return tokenHandler.WriteToken(token);
}

验证JWT

public bool ValidateJwtToken(string token, string secretKey)
{
    var tokenHandler = new JwtSecurityTokenHandler();
    var key = Encoding.ASCII.GetBytes(secretKey);
    try
    {
        tokenHandler.ValidateToken(token, new TokenValidationParameters
        {
            ValidateIssuerSigningKey = true,
            IssuerSigningKey = new SymmetricSecurityKey(key),
            ValidateIssuer = true,
            ValidIssuer = "issuer",
            ValidateAudience = true,
            ValidAudience = "audience"
        }),
        out SecurityToken validatedToken);
        return true;
    }
    catch
    {
        return false;
    }
}

通过上述信息,您可以根据自己的需求选择合适的平台和库来处理JWT。

0
看了该问题的人还看了