FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Har WN som tidsfördriv
|
Hej,
Som nu vet om man använder WWW-authenicate så får användaren upp en snygg dialog som kräver användarnamn i webbläsaren, då håller webbläsaren reda på login åt användaren och inga cookies behövs. Men hur får man en webbläsare att logga ut på ett snyggt sätt, idag använder jag följande: Kod:
if ($section== "logout"){ header("WWW-Authenticate: Basic realm=\"Login\""); header("HTTP/1.0 401 Unauthorized"); exit; } Användaren är ju urloggad och kan inte gå vidare på sidan utan att behöva autentisera sig igen, men användaren vill ju egentligen komma till en sida där det står "Du är urloggad". Är det någon som har en bra lösning, tillexempel om man hade kunnat... Kod:
if ($section== "logout"){ header("WWW-Authenticate: Basic realm=\"Login\""); header("HTTP/1.0 401 Unauthorized"); header("location: /logout.htm"); exit; } Men det går ju inte så bra.. Hur har du löst det? Har letat runt på php.net men ger snart upp.. /N |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Medlem
|
Jag brukar lösa det med cookies. Iom det så behövs bara en länk...Logga ut ... programmet raderar cookien och skickar användaren till en sida, antingen framsidan eller "Du har nu loggats ur" ... ska inte vara så svårt att implementera detta i php..
|
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Bara ett inlägg till!
|
Är du säker på att du inte kan välja själv hur en 401 Unauthorized sida ska se ut? Jag är väldigt säker på att man kan det även om jag inte kan minnas att jag testat.
Testa öppna utloggnings-sidan i en popup/osynlig frame och sedan låta main-framen gå vidare till hej-då-sidan efter att popupen/osynliga framen laddat klart. |
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Medlem
|
jo det går väl. Men jag skulle föredra sessions/cookies, dialogen är förvisso snygg men funkar nog inte överallt och defenitivt inte alltid som du tror. Sen är det vanligare med on-page inloggning, så rent pedagogiskt är det en fördel.
|
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Medlem
|
Men även om du skickar dessa headers, är du inte fortfarande inloggad ända tills du stänger webbläsaren? Vad händer om du backar två steg? Har för mig att jusst detta var en av svagheterna med htaccess. Det går fint att logga in, men utloggningen var en svaghet. Inte 100%, men bäst att testa och att använda sig av session-cookies är nog vanligare än htaccess idag.
|
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Bara ett inlägg till!
|
Citat:
|
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Klarade millennium-buggen
|
HTTP authentication lider utav det problemet att man inte kan logga ut utan att behöva stänga fönstret.
Du kan annars testa med unset(). |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Mycket flitig postare
|
Man kan använda basic authentication och ha ett utloggningsförfarande. Men det kräver ändå cookies vid utloggningen.
Det man gör är att när användaren loggar ut sätter man en cookie som säger att han är utloggad. På varje sida kontrolleras denna cookie och om den är satt så tar man bort den och returnerar 401 med en WWW-Authenticate header. På så sätt kan man använda basic authentication (med tillhörande inloggningsruta) och ändå ha ett utloggningsförfarande. Dock håller jag med om att det oiftast är mer lättanvänt att ha en inloggningssida, men i vissa fall är authentication via HTTP-protokollet trevligt. |
||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Bara ett inlägg till!
|
Citat:
Edit: Om han ändå ska använda cookies så kan han ju lika gärna låta cookien hålla i behörighetskoden. Går ju fint att kombinera med HTTP auth. |
|||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Klarade millennium-buggen
|
Håller med kullervo. Bättre att sätta cookie vid inloggningen och kolla ifall den är kvar och då behålla inloggningen.
Dock har jag ändå en förkärlek till sessions... |
||
![]() |
![]() |
Svara |
|
|