public async Task <User> LoginUser(LoginUserInfoQuery loginInfo) { var result = await _db.QueryFirstOrDefaultAsync <User>("select * from users where email=@email and password=@password", new{ @email = loginInfo.Email, @password = loginInfo.Password }); return(result); }
public async Task <IActionResult> Login(LoginUserInfoQuery loginInfo) { loginInfo.Password = _passwordHelper.EncodePasswordMd5(loginInfo.Password); var user = await _mediator.Send(loginInfo); if (user == null) { return(NotFound(new { info = "کاربری یافت نشد" })); } else if (user.IsActivated == false) { return(Error(new { info = "حساب کاربری شما فعال نشده است" })); } else { var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Key"])); var signinCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256); var tokenOptions = new JwtSecurityToken( issuer: _configuration["Jwt:Issuer"], audience: _configuration["Jwt:Issuer"], claims: new List <Claim> { new Claim(ClaimTypes.Name, user.Email), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Role, "User"), new Claim("FullName", user.FirstName + ' ' + user.LastName) }, expires: loginInfo.RememberMe?DateTime.Now.AddDays(30) : DateTime.Now.AddMinutes(3), // expires: DateTime.Now.AddDays(30), signingCredentials: signinCredentials ); var tokenString = new JwtSecurityTokenHandler().WriteToken(tokenOptions); return(Success(new { token = tokenString, expireTime = loginInfo.RememberMe ? 30 : 3, firstName = user.FirstName, lastName = user.LastName, userId = user.Id, email = user.Email, address = user.Address })); } }