Změna přihlašovacích údajů při autentizaci přes webserver

PHP skripty
User avatar
Ashus
Administrátor
Posts: 417
Joined: 07. 07. 2007 10:51
Location: Ostrava - Polanka nad Odrou
Contact:

Změna přihlašovacích údajů při autentizaci přes webserver

Postby Ashus » 25. 06. 2013 19:15

Pokud je nutné změnit přihlášeného uživatele pro větší množství systémů a používá se HTTP autentifikace pomocí webserveru (např. pomocí .htpasswd nebo LDAPu konfigurovaného v .htaccess), můžete provést reautentifikaci tímto způsobem, aniž byste zavírali prohlížeč nebo používali tlačítko zpět. Způsoby jako přesměrování na neexistujícího uživatele ve formátu http ://uživatel@server/ se ukázaly liché, protože prohlížeče v URL uživatele nechávají a pak se na údaje ptají na každé stránce. Redirect pomocí header taky není možný, protože pak prohlížeč nemá důvod čekat na nové údaje. Spolehlivě se pouze odhlásit nelze (omezení HTTP).

Celou složku/subdoménu máme zaheslovanou pomocí účtů v .htpasswd.

logout.php

Code: Select all

<?php

session_start();
if ((!isset($_SESSION['HTTP_REMOTE_USER'])) || ($_SESSION['HTTP_REMOTE_USER'] == $_SERVER['REMOTE_USER']))
    {
    header('WWW-Authenticate: Basic realm="Pokud neprovedete nove prihlaseni, zustane prihlasen \''.$_SERVER['REMOTE_USER'].'\'."');
    header('HTTP/1.1 401 Authorization Required');
    }

$_SESSION['HTTP_REMOTE_USER'] = $_SERVER['REMOTE_USER'];

echo '<meta http-equiv="refresh" content="0;URL=./">';

?>
Image
Coffee phreak!

Who is online

Users browsing this forum: No registered users and 1 guest

cron