如何在共享主机上为Perl网站实现基于cookie的身份验证?

如何在共享主机上为Perl网站实现基于cookie的身份验证?,perl,apache,cookies,authentication,Perl,Apache,Cookies,Authentication,我对Perl非常陌生,我完全不知道如何处理这个问题。我们有一个以前使用ApacheAuth的旧Perl应用程序;我们想用一个基于cookie的表单样式身份验证来代替它。我知道这是非常具体的情况,并没有一个答案,但一些一般提示将不胜感激 我需要编辑网站中的所有.pl文件吗?或者我可以使用“金锤”解决方案吗?有什么我可以用的吗?如果需要的话,我们使用的是PerlV5.8.8,我们使用的是Apache2共享托管。我很乐意提供必要的附加信息。您可以在。要识别/要求身份验证,需要由最初接收用户请求的.pl

我对Perl非常陌生,我完全不知道如何处理这个问题。我们有一个以前使用ApacheAuth的旧Perl应用程序;我们想用一个基于cookie的表单样式身份验证来代替它。我知道这是非常具体的情况,并没有一个答案,但一些一般提示将不胜感激


我需要编辑网站中的所有
.pl
文件吗?或者我可以使用“金锤”解决方案吗?有什么我可以用的吗?如果需要的话,我们使用的是PerlV5.8.8,我们使用的是Apache2共享托管。我很乐意提供必要的附加信息。

您可以在。

要识别/要求身份验证,需要由最初接收用户请求的
.pl
文件进行检查。因此,是否需要更改所有
.pl
文件的答案取决于应用程序的结构:

  • 如果用户要做第一件事和第二件事,那么,是的,您需要全部更改它们,因为它们都是单独接收请求的

  • 如果用户在第一件事和第二件事上转到,并且
    dispatch.pl
    基于
    mode
    参数在后台调用
    one.pl
    two.pl
    ,那么您只需要更改
    dispatch.pl
    ,因为它是唯一直接接收用户请求的

编辑以添加:如果您正在处理第一个模型,那么我强烈建议使用cookie处理代码设置一个外部模块(
.pm
文件),并从每个
.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);

谢谢你们的回答,伙计们,但我最终决定了哪一个在共享主机上运行良好。

取决于主机提供了多少控制(以及他们愿意代表您做多少)。您使用CGI.pm、CGI::Simple还是使用一些框架?