Пример #1
0
        public async Task <LoginResponse> RefreshLoginAsync(string refreshToken)
        {
            if (!await _userBus.IsRefreshTokenValid(refreshToken).ConfigureAwait(false))
            {
                var spec = new LoginSpec();
                spec.AddMessage(BusinessSpecStatus.Unauthorized, UserServiceMessages.TokenExpirado);

                AddSpec(spec);
                return(null);
            }

            var refresh = await _userBus.GetRefreshTokenAsync(refreshToken).ConfigureAwait(false);

            var user = await _userBus.GetByIdAsync(refresh.IdUser).ConfigureAwait(false);

            if (user == null)
            {
                var spec = new LoginSpec();
                spec.AddMessage(BusinessSpecStatus.Forbidden, UserServiceMessages.NomeUsuarioInvalido);

                AddSpec(spec);
                return(null);
            }

            var token = await _userBus.RefreshLoginAsync(refreshToken, user).ConfigureAwait(false);

            return(new LoginResponse(token.Token, token.IdUser, token.Email, token.RefreshToken));
        }
Пример #2
0
        public async Task <LoginResponse> LoginAsync(LoginRequest request)
        {
            var user = await _userBus.GetByEmailAsync(request.Email).ConfigureAwait(false);

            if (user == null)
            {
                var spec = new LoginSpec();
                spec.AddMessage(BusinessSpecStatus.Forbidden, UserServiceMessages.NomeUsuarioInvalido);

                AddSpec(spec);
                return(null);
            }

            var token = await _userBus.LoginAsync(user).ConfigureAwait(false);

            return(new LoginResponse(token.Token, token.IdUser, token.Email, token.RefreshToken));
        }