public async Task <User> LoginAsync(User user) { // Check the user exists. if (await _dataAccessManager.UserDataAccessManager().CheckUserExists(user.Email)) { // Get salt to hash password. user.Salt = await _dataAccessManager.UserDataAccessManager().GetUserSaltByEmail(user.Email); if (user.Salt != string.Empty) { // Hash password with salt. user.Password = _securityProvider.HashPassword(user.Password, user.Salt); // Validate password with server. if (await _dataAccessManager.UserDataAccessManager().ValidatePassword(user.Password)) { var returnedUser = await _dataAccessManager.UserDataAccessManager().LogIn(user.Email, user.Password); returnedUser.IsAuthenticatedByServer = true; returnedUser.AccessToken = returnedUser.AccessToken; // Return authenticated user. return(returnedUser); } } } // Set authentication to false. user.IsAuthenticatedByServer = false; return(user); }
public async Task UpdateUserPasswordAsync(ChangePasswordModel auth) { string userSalt = await _dataAccessManager.UserDataAccessManager().GetUserSaltByEmail(auth.Email); var hashPassword = _securityProvider.HashPassword(auth.Password, userSalt); auth.Password = hashPassword; var user = new User() { Email = auth.Email, Password = auth.Password }; await _dataAccessManager.UserDataAccessManager().UpdateUserPassword(user); }