public IActionResult Post(LoginPostRequest request,
                                  [FromServices] ClienteDomainService clienteDomainService,
                                  [FromServices] TokenService tokenService)
        {
            try
            {
                //buscar o cliente atraves do email e da senha
                var cliente = clienteDomainService.ObterCliente(request.Email, request.Senha);

                //verificar se o cliente foi encontrado
                if (cliente != null)
                {
                    //gerar o TOKEN de acesso!
                    var response = new LoginOkResponse
                    {
                        Mensagem      = "Cliente autenticado com sucesso",
                        AccessToken   = tokenService.GenerateToken(cliente.Email),
                        DataExpiracao = DateTime.Now.AddDays(1)
                    };

                    return(Ok(response));
                }
                else
                {
                    //HTTP 401 - Unauthorized
                    return(StatusCode(401, "Acesso não autorizado."));
                }
            }
            catch (Exception)
            {
                return(StatusCode(500, "Erro. Não foi possível realizar a autenticação."));
            }
        }
예제 #2
0
        public async Task <LoginPostResponse> Post([FromBody] LoginPostRequest request)
        {
            string token = null;

            try
            {
                token = await userRepository.GetToken(request.Content);
            }
            catch (Exception ex)
            {
                // can be logged (may be exception from decoding base64)
            }
            return(new LoginPostResponse()
            {
                Success = token != null,
                ErrorCode = token != null ? null : ErrorCodes.INVALID_USER_INFO,
                Token = token
            });
        }
예제 #3
0
        public HttpResponseMessage LoginPost(LoginPostRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            try
            {
                BaseResponse response = null;

                HttpStatusCode code = HttpStatusCode.OK;

                ApplicationUser user = UserService.Signin(model.UserName, model.Password);

                if (user != null)
                {
                    response = new SuccessResponse();
                    HttpResponseMessage resp = Request.CreateResponse(response);

                    //ResetClientState(user.Id, resp);

                    return(resp);
                }
                else
                {
                    response = new ErrorResponse("Unable to Log in");
                    code     = HttpStatusCode.BadRequest;
                }

                return(Request.CreateResponse(code, response));
            }

            catch (Exception e)
            {
                ErrorResponse er = new ErrorResponse(e.Message);

                //sabio.layout.showMessage(er);

                return(Request.CreateResponse(HttpStatusCode.InternalServerError, er));
            }
        }