Somefunc()
{
var accessToken = Request.Headers[HeaderNames.Authorization];
var token = accessToken[0].Split(' ')[1];
var isValid = Validation.IsValidToken(token);
if (!isValid)
{
var url = string.Format("{0}://{1}{2}", Request.Scheme, Request.Host, Url.Content("~"));
var redirectUrl = url + $"/Validation?success=false&message{HttpUtility.UrlEncode("Your token expired")}";
return Redirect(redirectUrl);
}
else
{
HttpContext.Session.SetString(Sessions.Token.ToString(), token);
}
}
public static bool IsValidToken(string token)
{
string[] parts = token.Split('.');
//string base64tok = Encoding.UTF8.GetString(Convert.FromBase64String(parts[1]));
var paddedB64 = parts[1].PadRight(parts[1].Length + (parts[1].Length * 3) % 4, '=');
var strPayload = Encoding.UTF8.GetString(Convert.FromBase64String(paddedB64));
var payload = JsonConvert.DeserializeObject<BearerPayload>(strPayload);
payload.ExpireyDate = new DateTime(1970, 1, 1).AddSeconds(payload.exp);
if (DateTime.UtcNow > payload.ExpireyDate)
{
return false;
}
else
{
return true;
}
}
Tags: c#code-snippetstoken