Ejemplo n.º 1
0
        public async Task <Token> GenerateToken(string token, string issuer, string[] audiences, double accessTokenExpirationInMinutes,
                                                double refreshTokenExpirationInMinutes, IDictionary <string, object> customClaims = null, bool generateRefreshToken = false)
        {
            await _tokenStore.DeleteExpiredAsync(CancellationToken.None);

            RefreshToken refreshToken = await _tokenStore.FindByTokenAsync(token, CancellationToken.None);

            if (refreshToken == null)
            {
                return(null);
            }

            JwtSecurityTokenHandler handler  = new JwtSecurityTokenHandler();
            JwtSecurityToken        jwtToken = handler.ReadJwtToken(refreshToken.AccessToken);

            Claim userIdClaim   = jwtToken.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.Sid);
            Claim usernameClaim = jwtToken.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.Sub);

            Token regeneratedToken = await GenerateToken(issuer, audiences, userIdClaim.Value, usernameClaim.Value,
                                                         accessTokenExpirationInMinutes, refreshTokenExpirationInMinutes, customClaims, generateRefreshToken);

            await _tokenStore.DeleteAsync(token, CancellationToken.None);

            return(regeneratedToken);
        }
Ejemplo n.º 2
0
        public async Task DeleteAsync_ShouldDeleteARequestedToken()
        {
            // Arrange
            ITokenStore tokenStore = _serviceProvider.GetService <ITokenStore>();
            string      token      = "4d527988-42b6-42ed-83fc-7acf5abd4a38";

            // Act
            IdentityResult identityResult = await tokenStore.DeleteAsync(token, CancellationToken.None);

            // Assert
            Assert.True(identityResult.Succeeded);
        }
Ejemplo n.º 3
0
 public async Task DeleteAsync(string token)
 {
     await _tokenStore.DeleteAsync(token);
 }