public async Task <string> GenerateEncodedToken(LoginDataDto request, Employee user) { var claims = new List <Claim> { new Claim(JwtRegisteredClaimNames.Sub, request.UserName), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), new Claim("id", user.Id) }; foreach (var role in await _userManager.GetRolesAsync(user)) { claims.Add(new Claim("role", role)); } var jwt = new JwtSecurityToken( issuer: _jwtOptions.Issuer, audience: _jwtOptions.Audience, claims: claims, notBefore: _jwtOptions.NotBefore, expires: _jwtOptions.Expiration, signingCredentials: _jwtOptions.GetSigningCredentials()); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt); return(await Task.FromResult(encodedJwt)); }