3
respostas

Forçar um novo login sempre

Bom dia, amigos.

Se puderem me ajudar, agradeço muito. Tenho esse código abaixo para colocar senha em uma determinada página. Ele funciona redondinho mas uma vez que vc faça o login e acesse a página novamente ele não pede mais login. Quero que sempre, em todo novo acesso, ele force o login novamente. O que eu tenho que mudar no código?

Muito obrigada!

$LOGIN_INFORMATION = array( 'zubrag' => 'root', 'admin' => 'adminpass' );

// request login? true - show login and password boxes, false - password box only define('USE_USERNAME', true);

// User will be redirected to this page after logout define('LOGOUT_URL', 'http://www.example.com/');

// time out after NN minutes of inactivity. Set to 0 to not timeout define('TIMEOUT_MINUTES', 0);

// This parameter is only useful when TIMEOUT_MINUTES is not zero // true - timeout time from last activity, false - timeout time from login define('TIMEOUT_CHECK_ACTIVITY', true);

##################################################################

SETTINGS END

##################################################################

/////////////////////////////////////////////////////// // do not change code below ///////////////////////////////////////////////////////

// show usage example if(isset($GET['help'])) { die('Include following code into every page you would like to protect, at the very beginning (first line):<?php include("' . strreplace('\','\\',FILE) . '"); ?>'); }

// timeout in seconds $timeout = (TIMEOUT_MINUTES == 0 ? 0 : time() + TIMEOUT_MINUTES * 60);

// logout? if(isset($GET['logout'])) { setcookie("verify", '', $timeout, '/'); // clear password; header('Location: ' . LOGOUTURL); exit(); }

if(!function_exists('showLoginPasswordProtect')) {

// show login form function showLoginPasswordProtect($error_msg) { ?>

Coloque a senha

Password:'; ?>

$val) { $lp = (USE_USERNAME ? $key : '') .'%'.$val; if ($_COOKIE['verify'] == md5($lp)) { $found = true; // prolong timeout if (TIMEOUT_CHECK_ACTIVITY) { setcookie("verify", md5($lp), $timeout, '/'); } break; } } if (!$found) { showLoginPasswordProtect(""); } } ?>
3 respostas

Priscila, bom dia!

Você pode criar um cookie com as informações necessárias para o login e setar o tempo desse cookie para uma data bem distante (visto que todo cookie precisa de uma data final), como no exemplo abaixo:

setcookie(
  "CookieName",
  "CookieValue",
  time() + (10 * 365 * 24 * 60 * 60)
);

Porém isso não seria uma boa prática por questão de segurança, então por recomendação pessoal eu tentaria usar uma biblioteca como o Curl.

Exemplo de uso do Curl

Site do Curl

Obrigada, Felipe. No caso quero que sempre ao acessar a página seja obrigatório colocar login e senha novamente. Se colocar um cookie para expirar em 1 minuto já me resolve a situação. Como eu faria isso no código que vc passou?

Oi Priscila,

Você pode fazer a seguinte forma:

setcookie('nome_do_cookie', 'valor_armazenado', time() + 60)

Neste caso, o último parâmetro está pegando o momento em que o cookie está sendo criado e adicionando 60 segundos(1 minuto) a ele, depois desse tempo ele expira e o login não vai ser feito automático.

Espero ter ajudado e bons estudos!