|
@@ -42,15 +42,17 @@ namespace TEAMModelOS.SDK.Extension
|
|
|
|
|
|
return serializeToken;
|
|
|
}
|
|
|
- public static string CreateAppToken(string issuer, string id, string salt, string schoolID = "", int expire = 1)
|
|
|
+ public static string CreateApiToken(string issuer, string id, string salt,string name , string schoolID = "", int expire = 1)
|
|
|
{
|
|
|
|
|
|
// 設定要加入到 JWT Token 中的聲明資訊(Claims)
|
|
|
var payload = new JwtPayload {
|
|
|
- { JwtRegisteredClaimNames.Iss, issuer }, //發行者
|
|
|
- { JwtRegisteredClaimNames.Sub, id }, // APPID
|
|
|
+ { JwtRegisteredClaimNames.Iss, issuer }, //發行者 iss: jwt签发者
|
|
|
+ { JwtRegisteredClaimNames.Sub, id }, // APPID sub: jwt所面向的用户
|
|
|
+ { JwtRegisteredClaimNames.Aud, "" }, // aud: 接收jwt的一方
|
|
|
{ JwtRegisteredClaimNames.Azp,schoolID}, // 學校簡碼,如果有的話
|
|
|
- {"hash",Guid.NewGuid().ToString() }
|
|
|
+ {JwtRegisteredClaimNames.Jti,Guid.NewGuid().ToString() },
|
|
|
+ { "name",name}, // 用戶的顯示名稱
|
|
|
//{ JwtRegisteredClaimNames.Exp,DateTimeOffset.UtcNow.AddHours(expire).ToUnixTimeSeconds().ToString()}, // 到期的時間,必須為數字
|
|
|
//{ "name",name}, // 用戶的顯示名稱
|
|
|
//{ "picture",picture}, // 用戶頭像
|
|
@@ -72,7 +74,30 @@ namespace TEAMModelOS.SDK.Extension
|
|
|
|
|
|
return serializeToken;
|
|
|
}
|
|
|
-
|
|
|
+ public static bool ValidateApiToken(string token, string salt)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var handler = new JwtSecurityTokenHandler();
|
|
|
+ var validationParameters = new TokenValidationParameters
|
|
|
+ {
|
|
|
+ RequireExpirationTime = true,
|
|
|
+ ValidateIssuer = false,
|
|
|
+ ValidateAudience = false,
|
|
|
+ IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(salt)),
|
|
|
+ //ValidateLifetime = false,
|
|
|
+ //LifetimeValidator = LifetimeValidator,
|
|
|
+ ClockSkew = TimeSpan.Zero
|
|
|
+ };
|
|
|
+ ClaimsPrincipal principal = handler.ValidateToken(token, validationParameters, out SecurityToken securityToken);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+ //Trace.WriteLine(ex.Message);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
public static bool ValidateAuthToken(string token, string salt)
|
|
|
{
|
|
|
try
|