public string GetDetailedToken(string userName, string email, string name) { string token = null; try { DetailedJwtPayload payload = new DetailedJwtPayload(userName, email, name); token = JWT.Encode(payload, Encoding.ASCII.GetBytes(_jwtConfig.SecretKey), _jwtConfig.jwsAlgorithm); } catch { return(null); } return(token); }
public bool IsValid(string token) { if (string.IsNullOrWhiteSpace(token)) { return(false); } string[] tokenParts = token.Split('.'); if (tokenParts.Length != 3) { return(false); } try { string payloadJson = JWT.Decode(token, Encoding.ASCII.GetBytes(_jwtConfig.SecretKey), _jwtConfig.jwsAlgorithm); DetailedJwtPayload jwtPayload = JsonConvert.DeserializeObject <DetailedJwtPayload>(payloadJson); // check token issuer if (!string.Equals(jwtPayload.iss, BasicJwtPayload.DEFAULT_ISS, StringComparison.Ordinal)) { return(false); } // check expiration time if (jwtPayload.IsExpired()) { return(false); } // check signature string validJwt = JWT.Encode(payloadJson, Encoding.ASCII.GetBytes(_jwtConfig.SecretKey), _jwtConfig.jwsAlgorithm); if (!string.Equals(validJwt, token, StringComparison.Ordinal)) { return(false); } } catch { return(false); } return(true); }