Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }