public static function login($login, $senha) { $u = UsuarioController::usuario_por_login($login); if ($u) { require_once PROJECT_ADDRESS . "/lib/util/proteger.php"; $pass = embaralhar($senha, $u->getCodigo()); // login e senha estão corretos if ($pass == $u->getSenha()) { // inicia o usuário UsuarioController::$usuario = $u; // registra a sessão SessaoController::iniciar(); if (SessaoController::get("token")) { require_once PROJECT_ADDRESS . "/lib/util/code.php"; $codigo = get_codigo(5); // atualiza o código do usuário UsuarioController::atualizar($senha, $codigo); } } else { // senha incorreta UsuarioController::defineException("login", "Login ou senha incorretos!"); } } else { // e-mail ou username não cadastrados UsuarioController::defineException("login", "Login ou senha incorretos!"); } }
public static function autenticar($token) { require PROJECT_ADDRESS . "/lib/util/JWT.php"; $m = JWT::from_token($token, jwt_secret_key()); if ($m) { $usuario = Usuario::fromJSON($m->getPayload(), "email,codigo"); SessaoController::doUsuario($usuario); if (SessaoController::get("id")) { UsuarioController::porEmail($usuario->getEmail()); } else { SessaoController::defineException("autenticar", "Sessão inválida!"); } } else { SessaoController::defineException("autenticar", "Token inválido!"); } }
<?php require "../app/project.php"; ?> <?php getController("Usuario"); getController("Sessao"); ?> <?php if (isset($_POST["login"]) and isset($_POST["senha"])) { UsuarioController::login($_POST["login"], $_POST["senha"]); if (SessaoController::get("token")) { ok_header(); echo SessaoController::$sessao->getJson("token"); } else { exception_header(); if (UsuarioController::get("id")) { SessaoController::print_exception("autenticar"); } else { UsuarioController::print_exception("login"); } } } else { bad_request_header(); }