Kom ihåg mig?
Home Menu

Menu


Logga ut

 
Ämnesverktyg Visningsalternativ
Oläst 2005-11-14, 18:21 #1
najks avatar
najk najk är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2005
Inlägg: 1 224
najk najk är inte uppkopplad
Har WN som tidsfördriv
najks avatar
 
Reg.datum: Oct 2005
Inlägg: 1 224
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;
}
Men det innebär ju att webbläsaren står kvar på den sidan man klickade på ?section=logout
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;
}
efter det att man skickat att användaren är "Unauthorized".
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
najk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-14, 19:10 #2
alexut alexut är inte uppkopplad
Medlem
 
Reg.datum: Oct 2005
Inlägg: 102
alexut alexut är inte uppkopplad
Medlem
 
Reg.datum: Oct 2005
Inlägg: 102
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..
alexut är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-14, 19:28 #3
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Ä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.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-14, 19:31 #4
Gustaf Gustaf är inte uppkopplad
Medlem
 
Reg.datum: Oct 2005
Inlägg: 220
Gustaf Gustaf är inte uppkopplad
Medlem
 
Reg.datum: Oct 2005
Inlägg: 220
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.
Gustaf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-14, 20:09 #5
Axe Axe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2005
Inlägg: 162
Axe Axe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2005
Inlägg: 162
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.
Axe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-14, 20:15 #6
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Citat:
Originally posted by techtigo@Nov 14 2005, 19:31
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.
HTTP authentication är med i HTTP 1.0. Vilka webbläsare klarar inte av det?
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-14, 21:19 #7
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
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().
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-15, 06:48 #8
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
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.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-15, 09:14 #9
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Citat:
Originally posted by eg0master@Nov 15 2005, 06:48
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.
Det där låter som en hemsk lösning. Istället för att se till att användaren är utloggad lurar du honom att tro detta. Det är ju bara att ta bort cookien för att den obehöriga ska få access. Ush och fy för fulhack.

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.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-15, 11:01 #10
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
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...
Jonas är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:39.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017