Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Victor Wagner                        2:5020/400     12 Jan 2006  12:31:02
 To : "Alexander V. Gaiduk"
 Subject : Re: Logout
 -------------------------------------------------------------------------------- 
 
 Alexander V. Gaiduk <gav@arhcity.ru> wrote:
 
 AVG>доброго времени суток. 
 AVG>есть средствами Apache авторизованный доступ к каталогу
 AVG>посредством "AuthType Basic" 
 AVG>как с помощью эхотага сделать Logout ? т.е. кликнув на
 AVG>ссылку нужно чтоб бровзер забыл имя и пароль, и при
 AVG>попытке повторного запроса к закрытому каталогу опять
 AVG>выкинул окошко с логином. 
 AVG>если, конечно, это возможно. 
 
 Сделать это надежно - крайне нетривиально. В rfc 2617, в котором описана
 Basic authentication такого не предусмотрено, поэтому приходится
 извращаться.
 
 В принципе можно сделать следующее - когда клиент приходит на скрипт, на
 которой указывает ссылка "logout", ему выдают HTTP-код 401
 (Authorization required) c тем же realm. Т.е. говорят "мужик, твой
 пароль больше не годится". Тогда браузер пароль забудет.
 
 Hо... Получив 401 браузер ТУТ ЖЕ выкинет окошко для ввода логина/пароля,
 и предложит ввести другой пароль. А после того как юзер его введет,
 отправит его по ТОЙ ЖЕ URL. 
 
 Соответственно, скрипт должен как-то отличить первый раз зашел к нему
 этот пользователь (и тогда выдавать 401 на валидный пароль) или не
 первый (и тогда честно проверять пароль и редиректить в более другое
 место в случае правильного пароля).
 
 Единственный плюс-минус надежный (с точностью до юзеров с нетривиальными
 настройками браузера) способ сделать это, известный мне - это выставлять
 куку в HTTP response с кодом 401. 
 
 И если пользователь пришел уже с этой кукой, считать что он ввел новый
 пароль, проверять его, а куку сносить.
 
 Интерфейс при этом получается неидеальный - при нажатии кнопки logout у
 пользователя вылетает окошко "а залогинься ты под другим именем". И
 реальный логаут получается, только если юзер там cancel нажмет.
 
 В общем, красиво можно сделать, только если не использовать Basic
 Authentication, а городить свою систему авторизации, например на тех же
 куках.
 -- 
 --- ifmail v.2.15dev5.3
  * Origin: Free Net of Leninsky,45 (2:5020/400)
 
 

Вернуться к списку тем, сортированных по:

 Тема:    Автор:    Дата:  
 Logout   Alexander V. Gaiduk   12 Jan 2006 10:10:52 
 Re: Logout   Victor Wagner   12 Jan 2006 12:31:02 
 Re: Logout   Ilia Vinokurov   16 Jan 2006 16:04:08 
 Hа: Logout   Alexander V. Gaiduk   18 Jan 2006 18:34:37 
 Re: Logout   Ilia Vinokurov   18 Jan 2006 19:14:49 
 Re: Logout   Victor Wagner   18 Jan 2006 20:13:50 
 Re: Hа: Logout   Artem Chuprina   18 Jan 2006 20:49:34 
 Hа: Hа: Logout   Alexander V. Gaiduk   19 Jan 2006 13:29:21 
 Re: Hа: Hа: Logout   Artem Chuprina   19 Jan 2006 16:27:53 
Архивное /ru.cgi.perl/15178cfd584b3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional