J'ai actuellement un petit script en cours d'exécution qui envoie un 401 au client, lors de l'annulation et ne fournissant pas de détails sur l'utilisateur le script ne retournera rien.Perl CGI de redirection après l'annulation sur un 401
Je souhaite envoyer une redirection vers la page d'où ils proviennent.
Le sous-programme principal ressemble à ceci;
#!usr/bin/perl
use strict;
use CGI;
sub checkAuth {
my ($user, $pass) = &getAuthUsers(); # Get the user and pass of already authenticated users.
unless ($user) {
&sendAuthenticationHeader(); # Send 401
}
# Check user against DB and return 1 for success.
if (&checkUser($user, $pass) eq 'Y') { return 1 };
else { # This is the redirect I'm trying to issue.
my $cgi = CGI->new();
print $cgi->redirect($ENV{HTTP_REFERER}); # Redirect to the referer url
exit;
}
}
Malheureusement, chaque fois que j'essaie d'envoyer de nouveaux en-têtes, il est simplement reçu en texte brut.
Toute aide est appréciée, merci d'avance.
Vous ne pouvez envoyer qu'un en-tête! Vous ne pouvez pas retourner à la fois un 401 et un 302 (redirection). Vous pouvez utiliser un "http-equiv" ou JS pour rediriger le navigateur, mais pourquoi retourner simplement le 302? – ikegami