예제 #1
0
        public async Task <IActionResult> GetToken(PlayerLoginModel loginModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var verifyRes = await _playerSvc.ValidateCredentials(loginModel.Email, loginModel.Password);

            if (verifyRes == PasswordVerificationResult.Success)
            {
                var token = await _tokenSvc.GetTokenAsync(loginModel.Email);

                return(Ok(new { token }));
            }

            return(BadRequest("Invalid credentials"));
        }
예제 #2
0
        public async Task <ActionResult <dynamic> > Login([FromBody] PlayerLoginModel model)
        {
            try
            {
                var user = await _context.Player
                           .AsNoTracking()
                           .Where(x => x.Email == model.Email)
                           .FirstOrDefaultAsync();

                if (user == null)
                {
                    return(NotFound(new { Erro = "Player não encontrado!" }));
                }

                else
                {
                    if (PasswordService.Compare(model.Password, user.Password))
                    {
                        var token = TokenService.GenerateToken(user);
                        user.Password = "";

                        return(new
                        {
                            user = user,
                            token = token,
                            mesangem = "Autenticado com sucesso!"
                        });
                    }

                    else
                    {
                        return(NotFound(new { Erro = "Senha inválida!" }));
                    }
                }
            }
            catch (Exception)
            {
                return(BadRequest(new { Erro = "Não foi possível realizar o login" }));
            }
        }