/// <summary> /// 生成JwtToken /// </summary> /// <param name="payload">不敏感的用户数据</param> /// <returns></returns> public static string Set(JwtPaylod payload, TimeSpan timeSpan) { //格式如下 //var payload = new Dictionary<string, object> //{ // { "username","admin" }, // { "pwd", "claim2-value" } //}; payload.exp = Expires(timeSpan); IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); IJsonSerializer serializer = new JsonNetSerializer(); IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder); var token = encoder.Encode(payload, WebConfig.JWT_Secret); return(token); }
/// <summary> /// 登录 /// </summary> /// <param name="tokenType"></param> public static void ToSigin(TokenTypeEnum tokenType, JwtPaylod payload) { switch (tokenType) { case TokenTypeEnum.Admin_Login: AppHelper.SignIn(payload, adminTokenName, tokenTimeSpanForAdmin); break; case TokenTypeEnum.Screen_Auth: AppHelper.SignIn(payload, homeScreenTokenName, tokenTimeSpanForHomeScreen); break; case TokenTypeEnum.SignIn_Auth: AppHelper.SignIn(payload, homeSignInTokenName, tokenTimeSpanForHomeSignIn); break; default: throw new ApplicationException("不存在此类型的token"); } }
/// <summary> /// 登入 /// </summary> /// <param name="payload"></param> public static void SignIn(JwtPaylod payload, string tokenName, TimeSpan timeSpan) { string token = JWTHelper.Set(payload, timeSpan); CookieHelper.Set(token, tokenName, timeSpan); }