{"id":41,"date":"2022-12-27T07:28:11","date_gmt":"2022-12-27T07:28:11","guid":{"rendered":"https:\/\/www.reasonist.me\/blog\/?p=41"},"modified":"2022-12-27T07:38:39","modified_gmt":"2022-12-27T07:38:39","slug":"get-token-from-http-request-and-decode-payloads","status":"publish","type":"post","link":"https:\/\/www.reasonist.me\/blog\/get-token-from-http-request-and-decode-payloads\/","title":{"rendered":"Get Token from Http request and decode payloads"},"content":{"rendered":"\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-lang=\"C#\"><code>Somefunc()\n{\n    var accessToken = Request.Headers[HeaderNames.Authorization];\n    var token = accessToken[0].Split(&#39; &#39;)[1];\n    var isValid = Validation.IsValidToken(token);\n    if (!isValid)\n    {\n        var url = string.Format(&quot;{0}:\/\/{1}{2}&quot;, Request.Scheme, Request.Host, Url.Content(&quot;~&quot;));\n        var redirectUrl = url + $&quot;\/Validation?success=false&message{HttpUtility.UrlEncode(&quot;Your token expired&quot;)}&quot;;\n        return Redirect(redirectUrl);\n    }\n    else\n    {\n        HttpContext.Session.SetString(Sessions.Token.ToString(), token);\n    }\n}\n\npublic static bool IsValidToken(string token)\n        {\n            string[] parts = token.Split(&#39;.&#39;);\n            \/\/string base64tok = Encoding.UTF8.GetString(Convert.FromBase64String(parts[1]));\n            var paddedB64 = parts[1].PadRight(parts[1].Length + (parts[1].Length * 3) % 4, &#39;=&#39;);\n            var strPayload = Encoding.UTF8.GetString(Convert.FromBase64String(paddedB64));\n\n            var payload = JsonConvert.DeserializeObject&lt;BearerPayload&gt;(strPayload);\n            payload.ExpireyDate = new DateTime(1970, 1, 1).AddSeconds(payload.exp);\n\n            if (DateTime.UtcNow &gt; payload.ExpireyDate)\n            {\n                return false;\n            }\n            else\n            {\n                return true;\n            }\n        }<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[5,4,8],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-c-code-snippets","tag-c","tag-code-snippets","tag-token"],"_links":{"self":[{"href":"https:\/\/www.reasonist.me\/blog\/wp-json\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.reasonist.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.reasonist.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.reasonist.me\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.reasonist.me\/blog\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":4,"href":"https:\/\/www.reasonist.me\/blog\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":46,"href":"https:\/\/www.reasonist.me\/blog\/wp-json\/wp\/v2\/posts\/41\/revisions\/46"}],"wp:attachment":[{"href":"https:\/\/www.reasonist.me\/blog\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.reasonist.me\/blog\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.reasonist.me\/blog\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}