Token in Action - bondaigames/ASP.NET-Core-Documentation GitHub Wiki

  • Go to JwtTokenGenerator.cs
//Change JwtOptions to IOptions<JwtOptions>
public JwtTokenGenerator(IOptions<JwtOptions> jwtOptions)
{
    _jwtOptions = jwtOptions.Value;
}
  • Go to AuthService.cs
private readonly RoleManager<IdentityRole> _roleManager;
//Add this line
private readonly IJwtTokenGenerator _jwtTokenGenerator;

public AuthService(AppDbContext db, IJwtTokenGenerator jwtTokenGenerator,
    UserManager<ApplicationUser> userManager, 
    RoleManager<IdentityRole> roleManager)
{
    _db = db;
    _jwtTokenGenerator = jwtTokenGenerator;
    _userManager = userManager;
    _roleManager = roleManager;
}
  • Add token for Login method
public async Task<LoginResponseDto> Login(LoginRequestDto loginRequestDto)
{
    var user = _db.ApplicationUsers.FirstOrDefault(u => u.UserName.ToLower() == loginRequestDto.UserName.ToLower());

    if (user == null)
    {
        return new LoginResponseDto();
    }

    bool isValid = await _userManager.CheckPasswordAsync(user, loginRequestDto.Password);

    if (!isValid)
    {
        return new LoginResponseDto();
    }

    //if user was found, Generate JWT Token
    var token = _jwtTokenGenerator.GenerateToken(user);

    UserDto userDto = new()
    {
        Email = user.Email,
        ID = user.Id,
        Name = user.Name,
        PhoneNumber = user.PhoneNumber
    };

    LoginResponseDto loginResponseDto = new LoginResponseDto()
    {
        User = userDto,
        Token = token
    };
    return loginResponseDto;
}
⚠️ **GitHub.com Fallback** ⚠️