首页 > 编程语言 >C# 生成JWT

C# 生成JWT

时间:2024-04-02 10:14:47浏览次数:26  
标签:string C# JWT System 生成 using var new

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

namespace Demo
{
    /// <summary>
    /// Token处理类
    /// </summary>
    public class Token
    {
        /// <summary>
        /// 生成JWT
        /// </summary>
        /// <param name="user"></param>
        /// <param name="secretKey"></param>
        /// <param name="issuer"></param>
        /// <param name="audience"></param>
        /// <param name="expiryMinutes"></param>
        /// <returns></returns>
        public static string GenerateJwt(User user, string secretKey, string issuer, string audience, int expiryMinutes)
        {
            var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey));
            var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

            var claims = new[]
            {
                new Claim(ClaimTypes.Name, user.Username),
                new Claim(ClaimTypes.Role, user.Group.ToString()),
            };

            var token = new JwtSecurityToken(
                issuer: issuer,
                audience: audience,
                claims: claims,
                expires: DateTime.UtcNow.AddMinutes(expiryMinutes),
                signingCredentials: credentials
            );

            var tokenHandler = new JwtSecurityTokenHandler();
            var jwtToken = tokenHandler.WriteToken(token);

            return jwtToken;
        }
    }
}

 

翻译

搜索

复制

标签:string,C#,JWT,System,生成,using,var,new
From: https://www.cnblogs.com/smartnn/p/18109952

相关文章

  • 英语背单词 专四词汇 2024年04月 ChatGPT
    2024-04-03  2024-04-02  2024-04-01IndexWordPronunciationPartsofSpeechExplanationTranslationinChinese1insulationɪnsəˈleɪʃənnounMaterialorsubstanceusedtopreventheat,electricity,orsoundfrompassing绝缘;隔热材料2......
  • QT开发:报错:QAxBase: Error calling IDispatch member Open: Exception thrown by serv
    在Qt中打开excel出现下面的错误提示:QAxBase:ErrorcallingIDispatchmemberOpen:Exceptionthrownbyserver怎么解决?错误提示通常意味着在尝试使用Qt的ActiveX模块(QAxBase)打开Excel文件时发生了异常。这可能是由于多种原因引起的,包括文件损坏、权限问题、Excel安装问题或者Q......
  • docker-compose 部署OWASP Juice Shop + CTFd
    项目介绍1.OWASPJuiceShop原文OWASPJuiceShopisprobablythemostmodernandsophisticatedinsecurewebapplication!Itcanbeusedinsecuritytrainings,awarenessdemos,CTFsandasaguineapigforsecuritytools!JuiceShopencompassesvulnerabili......
  • How to fix: “inotify cannot be used, reverting to polling: Too many open files
    Youareherebecauseyouhadencounteredtheerrorinthetitle.InthisarticleIwillexplaintheerrorandstepsnecessarytoreproduceandfixit.Themostrelevantdocumentationforinotifyisthe inotifymanpage, thatyoucanalsoreadlocallywith......
  • Quill文档(四):使用Parchment克隆Medium
    为了提供一致的编辑体验,您需要一致的数据和可预测的行为。不幸的是,DOM缺乏这两个特性。现代编辑器的解决方案是维护自己的文档模型来表示它们的内容。对于Quill来说,Parchment就是这样的解决方案。它在自己的代码库中组织,并拥有自己的API层。通过Parchment,您可以定制Quill识别......
  • CDR2024序列号keygen注册机最新免费网盘下载
    CorelDRAW2024是一款智能高效的平面设计软件,广泛应用于排版印刷、矢量图形编辑及网页设计等领域。它集矢量绘图、文本编辑、图像处理等多种功能于一身,可以满足各种设计需求。来自UC网盘分享文件:CDR2019-2024新旧软件安装包网盘绿色下载地址链接:手机打开微信扫一扫获取网盘......
  • BetterZip2024Mac上一款功能强大的Mac平台解压压缩软件
    一、软件概述BetterZip是一款Mac平台上的压缩解压缩工具,它为用户提供了一个方便的方式来处理各种压缩文件,包括但不限于ZIP、TAR、GZIP等格式。除了基本的压缩解压缩功能外,BetterZip还具备文件预览、文件加密、分卷压缩等高级功能,使得用户能够更加灵活高效地管理自己的压缩文件......
  • 【Python BUG】ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CX
    报错ImportError:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:version`CXXABI_1.3.9‘notfound背景开发的一个python预测程序(算法分析+应用服务),在原本的linux服务器下配置了开发环境,打包后在另一台凝思服务器解压,发现报错。应该是linux系统之间存在差异,动态库缺失......
  • C++ | filesystem file not found
    1.filesystem使用过程中遇到的错误如果你用的GCC版本<GCC8.0,则直接#include<filesystem>会报错,说找不到文件Nosuchfileordirectory对于这种情况,可以如下操作。如果是GCC8.0+和C++17以上,则只需要#include<filesystem>①改include路径#include<experimental/filesystem......
  • pytorch | torchvision.transforms.CenterCrop
    torchvision.transforms.CenterCrop==>从图像中心裁剪图片transforms.CenterCroptorchvision.transforms.CenterCrop(size)功能:从图像中心裁剪图片size:所需裁剪的图片尺寸transforms.CenterCrop(196)的效果如下:(也可以写成transforms.CenterCrop((196,196)))如果裁剪......