private static Claim[] defaultClaim(UserResponseResource user) { var claims = new[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) }; return(claims); }
private static Claim[] WithDetails(UserResponseResource user) { var claims = new[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim("email", user.Email), }; if (user.PersonalDetail != null && user.PersonalDetail.FirstName != null) { claims = new [] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim("email", user.Email), new Claim("firstName", user.PersonalDetail.FirstName), new Claim("lastName", user.PersonalDetail.LastName), }; } return(claims); }
public static string generateUserToken(UserResponseResource user, IConfiguration _config, Boolean withDetails = false) { // Create token an sent; var claims = withDetails ? WithDetails(user) : defaultClaim(user); var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor() { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds }; var tokenhandler = new JwtSecurityTokenHandler(); var token = tokenhandler.CreateToken(tokenDescriptor); // var data = new {token = tokenhandler.WriteToken(token)}; return(tokenhandler.WriteToken(token)); }