private string _generateRefreshToken(int id)
        {
            IJWTContainerModel jwtModel = StaticJWTContainer.GetAuthModel(id.ToString());

            jwtModel.SecretKey     = _secretKeyRefreshToken;
            jwtModel.ExpireMinutes = 13;
            _jwtService.SetVariable(jwtModel.SecretKey);
            return(_jwtService.GenerateToken(jwtModel));
        }
Exemple #2
0
        public async Task <object> Login(UserLoginRequest credentials)
        {
            var user = await _userService.GetUserByCredentials(credentials.Email, credentials.Password);

            if (user == null)
            {
                throw new AuthenticationException("Credenciais Inválidas");
            }

            var jwtTokenString = _jwtService.GenerateToken(user);

            var loggedUser = new
            {
                user.Id,
                user.Profile.Name,
                user.Email
            };

            _httpContext.Items["user"] = loggedUser;

            return(new AuthenticatedUserResponse()
            {
                AccessToken = jwtTokenString, UserId = user.Id, UserName = user.Profile.Name
            });
        }
Exemple #3
0
        public async Task <IActionResult> GenerateToken(AuthRequest model)
        {
            var user = await _db.Users.FirstOrDefaultAsync(x => x.UserName == model.UserName);

            if (user == null)
            {
                return(Unauthorized());
            }
            if (user.Password != Encrypt.MDString(model.Password))
            {
                return(Unauthorized());
            }

            var claims = new List <Claim>()
            {
                new Claim("userid", user.Id.ToString()),
                new Claim("username", user.UserName),
                new Claim("can_view", "true")
            };

            if (user.IsAdmin)
            {
                claims.Add(new Claim("can_delete", "true"));
            }

            return(Ok(new
            {
                token = _jwtService.GenerateToken(claims)
            }));
        }
Exemple #4
0
        public AuthenticationResponseDTO Auth(AutehnticationRequestDTO request)
        {
            var user = Mapper.Map <User>(request);

            return(new AuthenticationResponseDTO
            {
                Token = jwtService.GenerateToken(request.User)
            });
        }
Exemple #5
0
        public IActionResult Authenticate([FromBody] LoginForm login)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!_jWTService.CheckAccount(new LoginForm(login.email, _userService.EncodePassword(login.password))))
            {
                return(NotFound(new Response("404", "Email or password is not correct!")));
            }

            var id           = _userService.GetIdByEmail(login.email);
            var AccessToken  = _jWTService.GenerateToken(id, login.email);
            var RefreshToken = _jWTService.GenerateRefreshToken();

            _userService.UpdateRefreshToken(_userService.GetIdByEmail(login.email), RefreshToken);

            return(Ok(new LoginRespone(AccessToken, RefreshToken)));
        }
        public async Task <UserRegisterResponse> Regiser(UserRegisterRequest userRequest)
        {
            var user           = new User(userRequest.Email, userRequest.Password);
            var registeredUser = await _userRepository.Add(user);

            var jwtTokenString = _jwtService.GenerateToken(registeredUser);

            return(new UserRegisterResponse {
                Email = registeredUser.Email, Token = jwtTokenString
            });
        }
Exemple #7
0
        public async Task <JWTokenResponse> Login(UserLoginRequest user)
        {
            var userLogin = await _userRepository.Login(user.Email, user.Password);

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

            var jwtTokenString = _jwtService.GenerateToken(userLogin);

            return(new JWTokenResponse()
            {
                JwtToken = jwtTokenString
            });
        }
        public async Task <string> Handle(ValidateUserCommand request, CancellationToken cancellationToken)
        {
            var user = await dbContext.Users.FirstOrDefaultAsync(x => x.Login == request.Login);

            if (user == null)
            {
                throw new BusinessLogicException($"User {request.Login} doesn't exist");
            }
            else if (user.Password != request.Password)
            {
                throw new BusinessLogicException("Wrong credentials");
            }
            else
            {
                return(jwtService.GenerateToken(user));
            }
        }