Example #1
0
        public override async Task <AuthenticationState> GetAuthenticationStateAsync()
        {
            var token = await _localStorage.GetItemAsync <string>(MagicStrings.Local_Token);

            if (token == null)
            {
                Console.WriteLine($"**** GetAuthState: no token");
                return(new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())));
            }
            var exp = JwtParser.ParseExpirationTimeFromJwt(token);

            if (exp < DateTime.Now)
            {
                Console.WriteLine($"**** GetAuthState: token expired  ==> user logged out");
                await _localStorage.RemoveItemAsync(MagicStrings.Local_Token);

                return(new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())));
            }
            _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);
            var principal = new ClaimsPrincipal(new ClaimsIdentity(JwtParser.ParseClaimsFromJwt(token),
                                                                   "jwtAuthType"));

            Console.WriteLine($"**** GetAuthState: authenticated: {principal.Identity.IsAuthenticated}");
            return(new AuthenticationState(principal));
        }
Example #2
0
        public void JwtParser_GetExpirationTime_ShouldReturnCorrectValue()
        {
            var expirationTime = JwtParser.ParseExpirationTimeFromJwt(token);

            Assert.AreEqual("10.06.2021 15:26:06", expirationTime.ToString());
        }