示例#1
0
        public async Task <IActionResult> Login([FromBody] ViewModel.AuthUser viewModelUser)
        {
            var entityUser = _userService.GetBy(x => x.Email == viewModelUser.Email).FirstOrDefault();

            if (entityUser == null)
            {
                return(BadRequest(new { message = "Username or password is incorrect" }));
            }

            if (!_tokenService.VerifyPassword(viewModelUser, entityUser))
            {
                return(BadRequest(new { message = "Username or password is incorrect" }));
            }

            ResponseDto.AuthUser authUser = _mapper.Map <ResponseDto.AuthUser>(entityUser);
            authUser.AccessToken = _tokenService.CreateAccessToken(entityUser);
            var refreshToken = _tokenService.CreateRefreshToken(entityUser);

            authUser.RefreshToken   = refreshToken;
            entityUser.RefreshToken = refreshToken;

            _userService.Update(entityUser);
            var state = await _userService.Commit();

            if (!state)
            {
                return(StatusCode(500, "A problem occurred while handling your request"));
            }
            return(Ok(authUser));
        }
示例#2
0
 public bool VerifyPassword(ViewModel.AuthUser viewModelUser, Entities.User entityUser)
 {
     viewModelUser.Password = HashPassword(viewModelUser, viewModelUser.Password);
     return(viewModelUser.Password == entityUser.Password);
 }
示例#3
0
        public string HashPassword(ViewModel.AuthUser user, string password)
        {
            var hashedBytes = MD5.Create().ComputeHash(Encoding.ASCII.GetBytes(password));

            return(Encoding.ASCII.GetString(hashedBytes));
        }