using JWT;
using JWT.Algorithms;
using JWT.Serializers;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
namespace WX.CRM.WEB.Handler
{
public class JwtHelp
{
//私钥 web.config中配置
//"GQDstcKsx0NHjPOuXOYg5MbeJ1XT0uFiwDVvVBrk";
private static string secret = ConfigurationManager.AppSettings["Secret"].ToString();
///
/// 生成JwtToken
///
/// 不敏感的用户数据
///
public static string SetJwtEncode(Dictionary payload)
{
//格式如下
//var payload = new Dictionary
//{
// { "username","admin" },
// { "pwd", "claim2-value" }
//};
IJwtAlgorithm algorithm = new HMACSHA256Algorithm();
IJsonSerializer serializer = new JsonNetSerializer();
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);
var token = encoder.Encode(payload, secret);
return token;
}
/////
///// 根据jwtToken 获取实体
/////
///// jwtToken
/////
//public static UserInfo GetJwtDecode(string token)
//{
// IJsonSerializer serializer = new JsonNetSerializer();
// IDateTimeProvider provider = new UtcDateTimeProvider();
// IJwtValidator validator = new JwtValidator(serializer, provider);
// IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
// IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder);
// var userInfo = decoder.DecodeToObject(token, secret, verify: true);//token为之前生成的字符串
// return userInfo;
//}
}
}