C# 生成JWT的Token

csharp 复制代码
using JWT.Algorithms;
using JWT;
using JWT.Serializers;

private string GetToken(string timeStamp, string deptName, string doctorName, string idNo)
        {
            string token = string.Empty;
            string appID = config.AppID;
            string secretKey = config.AppSecret;
            //十分钟有效期
            long expTimeStamp = Convert.ToInt64(timeStamp) + 600000;

            //载荷
            var payload = new Dictionary<string, object>
            {
                { "jti",config.AppID},
                { "name", config.AppName },
                { "orgName",config.HospitalName},
                { "deptName",deptName},
                { "doctorName",doctorName},
                { "idNo",idNo},
                { "idNoType","01"},
                //生效时间
                { "nbf", timeStamp },
                //过期时间
                { "exp", expTimeStamp.ToString() },
                //颁发时间
                { "iat", timeStamp}
            };

            StringBuilder builder = new StringBuilder();
            foreach (var value in payload)
            {
                builder.Append(value.Key);
                builder.Append(":");
                builder.Append(value.Value);
                builder.Append("  ");
            }
            string logPayLoad = builder.ToString();
            LoggerSimple.WriteInfo($"载荷:{logPayLoad}");

            //HMACSHA256加密
            IJwtAlgorithm algorithm = new HMACSHA256Algorithm();
            //序列化和反序列
            IJsonSerializer serializer = new JsonNetSerializer();
            //Base64编解码
            IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
            IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);
            //编码成JWT令牌
            token = encoder.Encode(payload, secretKey);
            LoggerSimple.WriteInfo($"生成token:{token}");
            return token;
        }
相关推荐
zlinear数据采集卡8 小时前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
深澈Vincel11 小时前
我用 C# + WebView2 做了一个针对“流氓软件”的“一键清理工具“:架构实践与踩坑记录
c#
zlinear数据采集卡12 小时前
数据采集卡从入门到精通(7):流水线型ADC——级级接力,高速与高精的平衡术
开发语言·arm开发·嵌入式硬件·fpga开发·c#
阿部多瑞 ABU13 小时前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#
条形码D13 小时前
DRG综合管理分析系统-目前已经支持CHS-DRG3.0
c#·drg·3.0分组器·drg分组器·chs-drg3.0分组器
Alex Gram1 天前
数据库同步工具PanguSync图文教程
java·mysql·postgresql·sqlserver·c#·数据库同步软件·数据库同步工具
头茬韭菜1 天前
第 10 篇:「Fluss 实战案例集」—— 完整解决方案与最佳实践
c#·linq·fluss
淡海水2 天前
01-05-运行时-JIT优化全景-内联去虚拟化边界检查消除
windows·c#·虚拟化·jit·内联·边界检查消除
波波0072 天前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
wujian83112 天前
怎么用千问生成word文档:从「格式崩」到「一键过」,AI导出鸭打通最后半厘米
人工智能·ai·c#·word·豆包·deepseek·ai导出鸭