>>>Добрый времени суток!
>>>Я только начинаю создавать сайт для своей организации и нужна авторизация для
>>>управления этим ресурсом, подскажите как это реализуется???
>>
>>а причём тут перл? вот без всяких перлов
>>http://httpd.apache.org/docs/1.3/howto/auth.html
>>или это принципиально, чтобы именно на перл?
>
>Наверное да так как у меня работет через mod_perl.
>
>Я вообще не могу понять как происходит сам процес.
>Допустим есть форма авторизации проверка пароля и лоигна - это понятно.
>А как потом ??? Просто пользователю доспутна страница и все в дальнейшем
>при работе не проверяеться кто он какой пароль у него ???
>
>Если можно описать сам механизм. Во-первых mod_perl не отменяет авторизацию, её можно подключить, как написано по ссылке, м можно написать свой хендлер на том же мод-перле (там кстати есть модуль специальный Apache::AuthCookie).
А можно сделать всё "попростому": прилепить к сессии id.
Скажем так:
1) пирходит юзер по адресу http://каша.ru/
2) вы смотрите -- ага id нету на авторизаю этого юзера
3) он вводит всё, вы проверяете и если всё ok, то выдаёте ему id и перенаправлете на http://каша.ru/?id=XXXX
4) теперь сервер смотрит -- id есть (ну и проверить id надо), занит показываем ему контент
5) во всех ссылках добавляем id, чтобы ходя по сайту этот id за юзером тащился
idшки можно хранить в базе, но это тормозно. проще так:
пусть сервер знает сикретную строку (размером в 1000 знаков) назовём её $key.
тогда формирование id такое
$t=time();
$u=$user_name;
$s=Digest::MD5->new->add(join(':', $u, $t, $key))->hexdigest;
$id=join(':', $t, $u, $s)
(ну может ещё надо url-закодировать это уж сами смотрите)
проверка ключа тосно так же:
($t, $u, $s)=split /:/, $id;
$s1=Digest::MD5->new->add(join(':', $u, $t, $key))->hexdigest;
if ($s eq $s1 and $t не очень старое) {
всё ок
} else {
на авторизацию
}