public static TokenModel ParseToken(string token) { try { var encryptedBytes = BasicEncryption.Base64DecodeUrlSafe(token); var decryptedBytes = BasicEncryption.DecryptBytesFromBytes_Aes(encryptedBytes); int loginId = BitConverter.ToInt32(decryptedBytes, 0); long ticks = BitConverter.ToInt64(decryptedBytes, sizeof(int)); bool oneTimeUse = BitConverter.ToBoolean(decryptedBytes, sizeof(int) + sizeof(long) + 16); return(new TokenModel { ObjectId = loginId, Ticks = ticks, IsOneTimeUse = oneTimeUse }); } catch (Exception) { return(null); } }