В этом учебном пособии он создает пользовательскую форму входа в систему, просто чтобы показать, как это делается.Пожалуйста, найдите
Как мне удалить пользовательский логин и вернуться к настройкам по умолчанию?
Чтобы код выглядел следующим образом
sub cgiapp_init {
my $self = shift;
my %CFG = $self->cfg;
# ...
$self->authen->config(
DRIVER => [ 'Authen::Simple::LDAP',
host => '',
basedn => '',
],
STORE => 'Session',
LOGOUT_RUNMODE => 'logout',
LOGIN_RUNMODE => 'login',
POST_LOGIN_RUNMODE => 'okay',
RENDER_LOGIN => \&my_login_form,
);
$self->authen->protected_runmodes(
'mustlogin',
);
}
sub login : Runmode {
my $self = shift;
my $url = $self->query->url;
my $user = $self->authen->username;
if ($user) {
my $message = "User $user is already logged in!";
my $template = $self->load_tmpl('default.html');
$template->param(MESSAGE => $message);
$template->param(MYURL => $url);
return $template->output;
} else {
my $url = $self->query->self_url;
unless ($url =~ /^https/) {
$url =~ s/^http/https/;
return $self->redirect($url);
}
return $self->my_login_form;
}
}
Обновление
Здесь упоминается, что CGI :: Application имеет имя входа по умолчанию, которое выглядит лучше, чем его.
В строке 159 указывается подпрограмма, используемая для создания формы входа.Обратите внимание, что плагин Authentication поставляется с формой по умолчанию, которую вы можете использовать.Я включил этот, чтобы продемонстрировать, как создать свой собственный, если вы действительно этого хотите.По умолчанию он выглядит намного лучше моего, поэтому вы можете закомментировать строку 159!