Как реализовать аутентификацию на основе файлов cookie для сайта Perl на виртуальном хостинге? - PullRequest
0 голосов
/ 09 января 2010

Я очень новичок в Perl и совершенно не знаю, как к этому подойти. У нас есть старое приложение Perl, которое ранее использовало аутентификацию Apache; мы хотели бы заменить это аутентификацией в форме файлов cookie. Я понимаю, что это очень индивидуально для каждого случая, и нет единого ответа как такового, но некоторые общие советы будут весьма полезны.

Нужно ли мне редактировать все .pl файлы на сайте? Или я могу использовать «золотой молоток»? Есть ли что-то на CPAN , которое я могу использовать? Мы используем Perl v5.8.8, если это имеет значение, и мы используем Apache 2 shared хостинг. Я рад предоставить дополнительную информацию по мере необходимости.

Ответы [ 3 ]

1 голос
/ 10 января 2010

Чтобы аутентификация была распознана / требовалась, ее нужно проверить в файле .pl, который изначально получает запрос пользователя. Таким образом, ответ на вопрос о необходимости изменения всех файлов .pl зависит от структуры вашего приложения:

  • Если пользователь перейдет к http://myserver.com/one.pl, чтобы сделать первое, и http://myserver.com/two.pl, чтобы сделать второе, тогда, да, вам нужно изменить их все, потому что они ' все поступающие запросы индивидуально.

  • Если пользователь переходит к http://myserver.com/dispatch.pl?mode=one для первой вещи и http://myserver.com/dispatch.pl?mode=two для второй вещи, а dispatch.pl вызывает либо one.pl, либо two.pl за кадром, основываясь на параметр mode, тогда вам нужно всего лишь изменить dispatch.pl, так как он единственный, напрямую получающий запросы от пользователя.

Отредактировано, чтобы добавить: Если вы имеете дело с первой моделью, тогда я настоятельно рекомендую установить внешний модуль (файл .pm) с кодом обработки cookie и вызывать его из каждый из ваших .pl файлов вместо того, чтобы дублировать этот код повсюду. В идеале это позволило бы вам получить только несколько строк добавленного кода в каждом .pl:

use MyCookieHandlingModule qw(verify_cookie redirect_to_login);
my $q = CGI->new;  # ...unless you're already using CGI in object-oriented mode
redirect_to_login unless verify_cookie($q);
0 голосов
/ 30 января 2010

Спасибо за ваши ответы, ребята, но в итоге я выбрал CGI :: Session :: Auth :: DBI , который хорошо работает на виртуальном хостинге.

0 голосов
/ 09 января 2010

Вы можете сделать это на уровне вне программы Perl .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...