2010-01-09 5 views
0

Je suis très nouveau à Perl, et je n'ai absolument aucune idée de la façon d'aborder cela. Nous avons une ancienne application Perl qui utilisait auparavant l'authentification Apache; nous aimerions remplacer cela par une authentification de type formulaire basée sur les cookies. Je comprends que c'est très spécifique, et il n'y a pas une seule réponse en tant que telle, mais quelques conseils généraux seraient très appréciés.Comment implémenter une authentification basée sur les cookies pour un site Web Perl sur un hébergement partagé?

Dois-je modifier tous les fichiers .pl sur le site Web? Ou y a-t-il une solution "marteau en or" que je peux utiliser? Y at-il quelque chose sur CPAN que je peux utiliser? Nous utilisons Perl v5.8.8 si cela est important, et nous utilisons Apache 2 partagé hébergement. Je suis heureux de fournir des informations supplémentaires si nécessaire.

+0

Utilisez-vous CGI.pm, CGI :: Simple ou vous utilisez un framework? –

Répondre

0

Merci pour vos réponses les gars, mais j'ai finalement décidé CGI::Session::Auth::DBI qui fonctionne bien sur l'hébergement mutualisé.

0

Vous pouvez le faire à a level outside the Perl program.

+0

Est-ce que cela fonctionne sur l'hébergement partagé? –

+0

Dépend de la quantité de contrôle fournie par l'hôte (et de ce qu'il est prêt à faire pour vous) – Quentin

1

Pour que l'authentification soit reconnue/requise, elle doit être vérifiée par le fichier .pl qui reçoit initialement la requête de l'utilisateur. Donc, la réponse à savoir si tous les fichiers .pl devront être changé dépend de la façon dont votre application est structurée:

Edité pour ajouter: Si vous avez affaire avec le premier modèle, alors je vous recommande fortement la mise en place d'un module externe (.pm de fichier) avec le code de gestion des cookies et appelant que de chacun des vos fichiers individuels .pl au lieu de dupliquer ce code partout. Idéalement, cela vous permettra de vous en tirer avec seulement quelques lignes de code ajouté dans chaque .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); 
Questions connexes