public async Task <IActionResult> SignIn(bool isRememberMeActivated, [FromBody] SignInModel loginData) { var userModel = await _accountService.SignInAsync(loginData); var tokenModel = new TokenModel(); if (userModel.Errors.Any()) { tokenModel.Errors = userModel.Errors; return(Ok(tokenModel)); } double tokenLifeTime = _jwtConfig.GetValue <double>("AccessTokenLifeTime"); string secretKey = _jwtConfig.GetValue <string>("SecretKey"); tokenModel.AccessToken = _jwtHelper.GenerateToken(userModel, tokenLifeTime, secretKey, true); tokenLifeTime = isRememberMeActivated ? _jwtConfig.GetValue <double>("RefreshTokenLifeTimeLong") : _jwtConfig.GetValue <double>("RefreshTokenLifeTime"); tokenModel.RefreshToken = _jwtHelper.GenerateToken(userModel, tokenLifeTime, secretKey, false); return(Ok(tokenModel)); }
public async Task <JwtAuthResponse> Login(LoginRequest requestModel) { User user = await FindUser(requestModel.Email); if (user is null) { throw new ApplicationException(ExceptionConstants.WrongEmailOrPassword); } SignInResult result = await _signInManager.PasswordSignInAsync(user, requestModel.Password, requestModel.IsRememberMe, false); JwtAuthResponse response = _jwtHelper.GenerateToken(user); return(response); }
public async Task <ResponseModel> LoginAdminAsync(UserLoginModel userLoginModel) { var user = await _userService.GetUserByEmailAsync(userLoginModel.Email); if (user != null) { var result = PasswordUtilities.ValidatePass(user.Password, userLoginModel.Password, user.PasswordSalt); if (result) { var jwtPayload = new JwtPayload() { Id = user.Id, Username = user.Username, Email = user.Email, FullName = user.FullName, RoleIds = user.UserInRoles != null?user.UserInRoles.Select(x => x.RoleId).ToList() : null }; var token = _jwtHelper.GenerateToken(jwtPayload); return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.OK, Data = new { jwtPayload, token = token } }); } else { return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.BadRequest, Message = "Email or password not match!"// TODO: multi language }); } } else { return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.BadRequest, Message = "Account is not register!"// TODO: multi language }); } }
public async Task <RespondModel> LoginAsync(AuthenViewModel authenViewModel) { var user = await _userService.Authenticate(authenViewModel.UserName, authenViewModel.Password); if (user != null) { var jwtPayload = new JwtPayload() { Username = user.Name, UserId = user.Id, RoleIds = user.UserInRoles != null?user.UserInRoles.Select(x => x.AppRoleId).ToList() : null }; var token = _jwtHelper.GenerateToken(jwtPayload); return(new RespondModel() { StatusCode = System.Net.HttpStatusCode.OK, data = token }); } else { return(new RespondModel() { StatusCode = System.Net.HttpStatusCode.BadRequest, Message = "Your Account is wrong!" }); } }
public async Task <ResponseModel> RegisterAsync(UserRegisterModel userRegisterModel) { var user = await _userRepository.FetchFirstAsync(x => x.Email == userRegisterModel.Email); if (user != null) { return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.NotAcceptable, Message = "This email has already existed!", }); } else { user = AutoMapper.Mapper.Map <User>(userRegisterModel); userRegisterModel.Password.GeneratePassword(out string saltKey, out string hashPass); user.Password = hashPass; user.PasswordSalt = saltKey; await _userRepository.InsertAsync(user); var userInRoles = new List <UserInRole>(); foreach (var roleId in userRegisterModel.RoleIds) { userInRoles.Add(new UserInRole() { UserId = user.Id, RoleId = roleId }); } _userInRoleRepository.GetDbContext().UserInRoles.AddRange(userInRoles); await _userInRoleRepository.GetDbContext().SaveChangesAsync(); user = await GetAll().FirstOrDefaultAsync(x => x.Id == user.Id); var jwtPayload = new JwtPayload() { UserId = user.Id, Email = user.Email, Address = user.Address, Name = user.Name, PhoneNumber = user.PhoneNumber, DateOfBirth = user.DateOfBirth, Gender = user.Gender, RoleIds = user.UserInRoles != null?user.UserInRoles.Select(x => x.RoleId).ToList() : null }; var token = _jwtHelper.GenerateToken(jwtPayload); return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.OK, Data = token }); } }
public async Task <ResponseModel> LoginAsync(UserLoginModel userLoginModel) { var user = await _userService.GetByMobileAsync(userLoginModel.Mobile); if (user != null) { var result = PasswordUtilities.ValidatePass(user.Password, userLoginModel.Password, user.PasswordSalt); if (result) { if (!user.Verified) { var userViewModel = new UserViewModel(user); return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.OK, Data = userViewModel }); } else { var jwtPayload = new JwtPayload() { UserId = user.Id, Mobile = user.Mobile, Name = user.Name, RoleIds = user.UserInRoles != null?user.UserInRoles.Select(x => x.RoleId).ToList() : null }; var token = _jwtHelper.GenerateToken(jwtPayload); return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.OK, Data = token }); } } else { return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.BadRequest, Message = "Số điện thoại hoặc mật khẩu không đúng. Vui lòng thử lại!"// TODO: multi language }); } } else { return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.BadRequest, Message = "Số điện thoại chưa được đăng kí!"// TODO: multi language }); } }
public ActionResult <string> Login([FromQuery] LoginViewModel loginVM) { if (_userService.LoginVerify(loginVM)) { return(_jwt.GenerateToken(loginVM.Account)); } else { return(BadRequest()); } }
public async Task <JwtAuthentificationResponse> Login(LoginRequest requestModel) { var user = await FindUser(requestModel.Email); if (user is null) { throw new ApplicationCustomException(ExceptionConstants.WrongEmailOrPassword); } var result = await _signInManager.PasswordSignInAsync(user, requestModel.Password, requestModel.IsRememberMe, false); if (!result.Succeeded) { throw new ApplicationCustomException(ExceptionConstants.WrongEmailOrPassword); } IEnumerable <string> userRoles = await _userManager.GetRolesAsync(user); JwtAuthentificationResponse response = _jwtHelper.GenerateToken(user, userRoles); return(response); }
public async Task <IActionResult> Login([FromBody] LoginDto loginDto) { async Task <string> Login() { await _loginValidator.ValidateEntityAsync(loginDto); var result = await _signInManager.PasswordSignInAsync(loginDto.Email, loginDto.Password, false, false); if (!result.Succeeded) { throw new FoodsValidationException("Username", loginDto.Email, "Invalid username or password"); } var appUser = _userManager.Users.SingleOrDefault(r => r.Email == loginDto.Email); var jwtToken = _jwtHelper.GenerateToken(appUser); return(jwtToken); } return(await Execute(Login)); }
public async Task <ActionResult> SignIn([FromBody] SignInRequest request) { if (await _repository.Account.SignIn(request.Login, request.Password)) { string token = _jwtHelper.GenerateToken(); return(Ok(new ResponseDTO { Success = true, Data = new { token } })); } return(BadRequest(new ResponseDTO { Success = false })); }
public async Task <Login> GetUserInformation(Login loginDetails) { //Generate login info simulating DB; Login login = GenerateUser().Where(u => u.UserAccess == loginDetails.UserAccess && u.Password == loginDetails.Password).FirstOrDefault(); login.Password = ""; if (login == null) { return(null); } return(await _jwtHelper.GenerateToken(login)); }
public void JwtGenerateToken() { var user = new MemberDto { Name = "Jhon", LastName = "Watson", Email = "*****@*****.**", Username = "******", LastLogin = DateTime.Now, RegistrationDate = DateTime.Now }; var token = jwt.GenerateToken(user); Assert.IsNotEmpty(token); }
public TokenResponse GenerateAuthenticationToken(LoginRequest command) { var user = GetUserByUserNameAndPassword(command.Username, command.Password); var notBeforeDate = DateTime.Now; var expriationDate = notBeforeDate.AddHours(5); var token = _jwtHelper.GenerateToken(user.Id, user.Username, notBeforeDate, expriationDate); return(new TokenResponse { Token = token, ExpirationDate = expriationDate }); }
public async Task <ResponseModel> LoginAsync(UserLoginModel userLoginModel) { var user = await _userService.GetByEmailAsync(userLoginModel.Email); if (user != null) { var result = PasswordUtilities.ValidatePass(user.Password, userLoginModel.Password, user.PasswordSalt); if (result) { var jwtPayload = new JwtPayload() { UserId = user.Id, Email = user.Email, Address = user.Address, Name = user.Name, PhoneNumber = user.PhoneNumber, DateOfBirth = user.DateOfBirth, Gender = user.Gender, RoleIds = user.UserInRoles != null?user.UserInRoles.Select(x => x.RoleId).ToList() : null }; var token = _jwtHelper.GenerateToken(jwtPayload); return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.OK, Data = token }); } else { return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.BadRequest, Message = "Email or password is incorrect. Please try again!" }); } } else { return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.BadRequest, Message = "Email doesn't exist!" }); } }
public async Task <ResponseModel> VerifyCodeAsync(Guid userId, string code) { var user = await _userRepository.GetByIdAsync(userId); if (user == null) { return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.NotFound, Message = "User không tồn tại trong hệ thống. Vui lòng kiểm tra lại!" }); } else { if (user.VerifyCode != code) { return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.BadRequest, Message = "Mã xác nhận không hợp lệ!" }); } else { var jwtPayload = new JwtPayload() { UserId = user.Id, Mobile = user.Mobile, Name = user.Name, RoleIds = user.UserInRoles != null?user.UserInRoles.Select(x => x.RoleId).ToList() : null }; var token = _jwtHelper.GenerateToken(jwtPayload); return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.OK, Data = token }); } } }