Добрый времени суток!
Я только начинаю создавать сайт для своей организации и нужна авторизация для управления этим ресурсом, подскажите как это реализуется???
>Добрый времени суток!
>Я только начинаю создавать сайт для своей организации и нужна авторизация для
>управления этим ресурсом, подскажите как это реализуется???а причём тут перл? вот без всяких перлов
http://httpd.apache.org/docs/1.3/howto/auth.html
или это принципиально, чтобы именно на перл?
>>Добрый времени суток!
>>Я только начинаю создавать сайт для своей организации и нужна авторизация для
>>управления этим ресурсом, подскажите как это реализуется???
>
>а причём тут перл? вот без всяких перлов
>http://httpd.apache.org/docs/1.3/howto/auth.html
>или это принципиально, чтобы именно на перл?Наверное да так как у меня работет через mod_perl.
Я вообще не могу понять как происходит сам процес.
Допустим есть форма авторизации проверка пароля и лоигна - это понятно.
А как потом ??? Просто пользователю доспутна страница и все в дальнейшем при работе не проверяеться кто он какой пароль у него ???
Если можно описать сам механизм.
>>>Добрый времени суток!
>>>Я только начинаю создавать сайт для своей организации и нужна авторизация для
>>>управления этим ресурсом, подскажите как это реализуется???
>>
>>а причём тут перл? вот без всяких перлов
>>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 {
на авторизацию
}
Выдавать надо не ID а какой нидь GUID, который сопоставлен этому ID.
GUID передаётся клиенту в виде cookie.если на клиенте куки не поддерживаются, то придётся формировать добавлять в url параметр guid.
Самое простое,- .htaccess.
Посложнее,- авторизация с сессиями, ищите готовый модуль или пишите полностью свой.
Если необходимо интегрировать авторизацию с пользователями в своей БД,- смотрите в сторону mod_mysql_auth или mod_pg_auth, можно настроить на нужную таблицу в БД, выбирать логин\пароль из нужных полей, вплоть до того, что в конфиге писать нужной степени навороченности SQL запрос.
>Самое простое,- .htaccess.
>Посложнее,- авторизация с сессиями, ищите готовый модуль или пишите полностью свой.
>Если необходимо интегрировать авторизацию с пользователями в своей БД,- смотрите в сторону
>mod_mysql_auth или mod_pg_auth, можно настроить на нужную таблицу в БД, выбирать
>логин\пароль из нужных полей, вплоть до того, что в конфиге писать
>нужной степени навороченности SQL запрос.Если делать через htaccess AutyType Basic я так понимаю долно выдаваться окошко с вводом логина и пароля или нет ???
Именно. Если надо на страничке красиво рисовать,- тогда не подойдёт.