URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5087
[ Назад ]

Исходное сообщение
"Авторизация на perl"

Отправлено berx , 06-Июл-07 15:16 
Добрый времени суток!
Я только начинаю создавать сайт для своей организации и нужна авторизация для управления этим ресурсом, подскажите как это реализуется???

Содержание

Сообщения в этом обсуждении
"Авторизация на perl"
Отправлено A , 06-Июл-07 15:57 
>Добрый времени суток!
>Я только начинаю создавать сайт для своей организации и нужна авторизация для
>управления этим ресурсом, подскажите как это реализуется???

а причём тут перл? вот без всяких перлов
http://httpd.apache.org/docs/1.3/howto/auth.html
или это принципиально, чтобы именно на перл?


"Авторизация на perl"
Отправлено berx , 06-Июл-07 17:40 
>>Добрый времени суток!
>>Я только начинаю создавать сайт для своей организации и нужна авторизация для
>>управления этим ресурсом, подскажите как это реализуется???
>
>а причём тут перл? вот без всяких перлов
>http://httpd.apache.org/docs/1.3/howto/auth.html
>или это принципиально, чтобы именно на перл?

Наверное да так как у меня работет через mod_perl.

Я вообще не могу понять как происходит сам процес.
Допустим есть форма авторизации проверка пароля и лоигна - это понятно.
А как потом ??? Просто пользователю доспутна страница и все в дальнейшем при работе не проверяеться кто он какой пароль у него ???
Если можно описать сам механизм.  


"Авторизация на perl"
Отправлено A , 06-Июл-07 17:57 
>>>Добрый времени суток!
>>>Я только начинаю создавать сайт для своей организации и нужна авторизация для
>>>управления этим ресурсом, подскажите как это реализуется???
>>
>>а причём тут перл? вот без всяких перлов
>>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 {
  на авторизацию
}


"Авторизация на perl"
Отправлено Владислав , 10-Июл-07 05:52 
Выдавать надо не ID а какой нидь GUID, который сопоставлен этому ID.
GUID передаётся клиенту в виде cookie.

если на клиенте куки не поддерживаются, то придётся формировать добавлять в url параметр guid.


"Авторизация на perl"
Отправлено adews , 06-Июл-07 16:26 
Самое простое,- .htaccess.
Посложнее,- авторизация с сессиями, ищите готовый модуль или пишите полностью свой.
Если необходимо интегрировать авторизацию с пользователями в своей БД,- смотрите в сторону mod_mysql_auth или mod_pg_auth, можно настроить на нужную таблицу в БД, выбирать логин\пароль из нужных полей, вплоть до того, что в конфиге писать нужной степени навороченности SQL запрос.

"Авторизация на perl"
Отправлено berx , 09-Июл-07 11:13 
>Самое простое,- .htaccess.
>Посложнее,- авторизация с сессиями, ищите готовый модуль или пишите полностью свой.
>Если необходимо интегрировать авторизацию с пользователями в своей БД,- смотрите в сторону
>mod_mysql_auth или mod_pg_auth, можно настроить на нужную таблицу в БД, выбирать
>логин\пароль из нужных полей, вплоть до того, что в конфиге писать
>нужной степени навороченности SQL запрос.

Если делать через htaccess AutyType Basic я так понимаю долно выдаваться окошко с вводом логина и пароля или нет ???


"Авторизация на perl"
Отправлено adews , 09-Июл-07 14:38 
Именно. Если надо на страничке красиво рисовать,- тогда не подойдёт.