Exemplo n.º 1
0
        public async Task <Account> ExternalLoginAsync(Account account)
        {
            AccountEntity dalAccount = await _accountRepository.GetByEmailAsync(account.Email);

            if (dalAccount == null)
            {
                return(null);
            }

            return(_mapper.Map <Account>(dalAccount));
        }
Exemplo n.º 2
0
        public async Task <Account> LoginAsync(Account account)
        {
            AccountEntity dalAccount = await _accountRepository.GetByEmailAsync(account.Email);

            if (dalAccount == null)
            {
                return(null);
            }

            byte[] loginPasswordHash = PasswordHasher.GenerateHash(
                account.Password,
                dalAccount.Salt
                );

            if (!dalAccount.PasswordHash.SequenceEqual(loginPasswordHash))
            {
                return(null);
            }

            return(_mapper.Map <Account>(dalAccount));
        }
Exemplo n.º 3
0
        public async Task <Account> RegisterAsync(Account account)
        {
            AccountEntity dalAccount = _mapper.Map <AccountEntity>(account);

            bool duplicate = await _accountRepository.CheckDuplicateAsync(dalAccount);

            if (duplicate)
            {
                return(null);
            }

            if (account.Password != null)
            {
                byte[] saltForNewAccount = PasswordHasher.GenerateSalt();
                dalAccount.Salt         = saltForNewAccount;
                dalAccount.PasswordHash = PasswordHasher.GenerateHash(account.Password, saltForNewAccount);
            }

            AccountEntity newAccount = await _accountRepository.CreateAccountAsync(dalAccount);

            return(_mapper.Map <Account>(newAccount));
        }