示例#1
0
 /**
  * Caso exista o cookie de autenticação, verifica se o token é válido
  */
 public static function checkUser()
 {
     $user = self::user();
     if ($user == null) {
         \Log::warning('Usuário do cookie inválido. Removendo cookie');
         // remove o cookie
         \Controllers\SessionsController::destroySessionCookie();
     } else {
         $data = \Controllers\SessionsController::extractCookieInfo();
         $cookieToken = isset($data['token']) ? $data['token'] : null;
         $dbToken = $user->getToken();
         if ($data == null || $cookieToken != $dbToken) {
             \Log::warning('Token do cookie inválido. Removendo cookie');
             // remove o cookie
             \Controllers\SessionsController::destroySessionCookie();
             redirect(getBaseURL());
         }
     }
 }
示例#2
0
 /**
  * Altera a senha do usuário
  * @param  string $password Nova senha, sem aplicação do hash
  * @return bool     TRUE em caso de sucesso, FALSE caso contrário
  */
 public function changePassword($password)
 {
     $hashedNewPassword = \Hash::password($password);
     $this->password = $hashedNewPassword;
     $userID = $this->getId();
     $now = date('Y-m-d H:i:s');
     $DB = new \DB();
     $sql = "UPDATE users SET password = :password, updated_at = :now WHERE id = :id";
     $stmt = $DB->prepare($sql);
     $stmt->bindParam(':password', $hashedNewPassword);
     $stmt->bindParam(":now", $now);
     $stmt->bindParam(':id', $userID, \PDO::PARAM_INT);
     if ($stmt->execute()) {
         // gera um novo token
         $token = $this->generateToken();
         $this->updateToken($token);
         // atualiza o token do cookie
         \Controllers\SessionsController::saveSessionCookieForUser($this);
         return true;
     } else {
         return false;
     }
 }
示例#3
0
/* =======================
   Rotas da Aplicação
   ===================== */
// página inicial
$app->get('/', function () {
    \Controllers\PagesController::home();
});
// login
// GET: exibe formulário de login
// POST: processa o formulário de login
$app->map('/login', function () {
    \Controllers\SessionsController::login();
})->via('GET', 'POST');
// logout (sair)
$app->get('/logout', function () {
    \Controllers\SessionsController::logout();
});
// página de erro ao tentar acessar uma rota restrita a usuários logados
$app->get('/erro-login-necessario', function () {
    \View::make('erro-login-necessario');
});
// página de erro ao tentar acessar uma rota restrita a administradores
$app->get('/erro-nivel-admin-necessario', function () {
    \View::make('erro-nivel-admin-necessario');
});
// formulário de cadastro
$app->get('/cadastro', function () {
    \Controllers\UsersController::create();
});
// processa o formulário de cadastro
$app->post('/cadastro_salvar', function () {