public async Task <HandlerResult> Authenticate(IHandlerRequest model) { var user = await _userRepository.GetUserByEmailAddress(model.EmailAddress); if (user == null) { return(null); } if (!_passwordService.VerifyPassword(model.Password, user.Password)) { return(null); } var verified = _twoFactorService.VerifyToken(model.VerificationCode, user.TwoFactorSecret); if (!verified) { return(null); } if (user.IsLockedOut) { return(new HandlerResult(isLockedOut: user.IsLockedOut)); } return(new HandlerResult(user)); }
public async Task <HandlerResult> Authenticate(IHandlerRequest model) { var provider = _providerFactory(model.Provider); if (provider == null) { return(null); } var externalUser = await provider.GetUser(model.AccessToken); if (externalUser == null) { return(null); } var user = await _userRepository.GetUserByLogin(model.Provider, externalUser.UserId); if (user == null) { return(new HandlerResult(requiresExternal: true)); } if (user.IsLockedOut) { return(new HandlerResult(isLockedOut: true)); } return(new HandlerResult(user)); }
public async Task <HandlerResult> Authenticate(IHandlerRequest model) { var user = await _userRepository.GetUserByRefreshToken(model.RefreshToken); if (user == null) { return(null); } if (user.IsLockedOut) { return(new HandlerResult(isLockedOut: true)); } user.RefreshTokens.Remove(model.RefreshToken); return(new HandlerResult(user)); }
public async Task <HandlerResult> Authenticate(IHandlerRequest model) { var user = await _userRepository.GetUserByEmailAddress(model.EmailAddress); if (user == null) { return(null); } if (!_passwordService.VerifyPassword(model.Password, user.Password)) { return(null); } if (user.IsLockedOut || user.TwoFactorEnabled) { return(new HandlerResult(isLockedOut: user.IsLockedOut, requiresTwoFactor: user.TwoFactorEnabled)); } return(new HandlerResult(user)); }