Startup configuration for JWT token and I am generating token with just issuer , audience and in claim I added only username to generate token. token is validated but in context.user.identity.isAuthenticated is always return false. Is there any way to make it has true?
.AddJwtBearer("jwt",options =>
{
options.RequireHttpsMetadata = true;
options.SaveToken = true;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = jwtTokenConfig.Issuer,
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(jwtTokenConfig.Secret)),
ValidAudience = jwtTokenConfig.Audience,
ValidateAudience = true,
ValidateLifetime = true,
ClockSkew = TimeSpan.FromMinutes(1)
};
}
** I am generating token as following **
var claims = new[]
{
new Claim(ClaimTypes.Name,UserName),
};
return GenerateTokens(UserName, claims, DateTime.Now);
}
return null;
}
private Dictionary<string, string> GenerateTokens(string userName, Claim[] claims, DateTime now)
{
var shouldAddAudienceClaim = string.IsNullOrWhiteSpace(claims?.FirstOrDefault(x => x.Type == JwtRegisteredClaimNames.Aud)?.Value);
var jwtToken = new JwtSecurityToken(
_jwtConfiguration.Issuer,
shouldAddAudienceClaim ? _jwtConfiguration.Audience : string.Empty,
claims,
expires: now.AddMinutes(_jwtConfiguration.AccessTokenExpiration),
signingCredentials: new SigningCredentials(new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_jwtConfiguration.Secret)), SecurityAlgorithms.HmacSha256Signature));
);
var accessToken = new JwtSecurityTokenHandler().WriteToken(jwtToken);