Как удалить форму входа в систему из этого примера CGI :: Application? - PullRequest
1 голос
/ 28 июня 2011

В этом учебном пособии он создает пользовательскую форму входа в систему, просто чтобы показать, как это делается.Пожалуйста, найдите

Как мне удалить пользовательский логин и вернуться к настройкам по умолчанию?

Чтобы код выглядел следующим образом

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!

Ответы [ 2 ]

4 голосов
/ 29 июня 2011

Я автор этого урока.Извините за путаницу!То, что я должен сказал, это "закомментируйте строки 157, 158 и 159 файла Login.pm".Чтобы использовать форму по умолчанию, встроенную в модуль CGI :: Application :: Plugin :: Authentication, вам не нужно указывать LOGIN_RUNMODE, POST_LOGIN_RUNMODE или RENDER_LOGIN.Все они предоставлены только для того, чтобы помочь вам настроить страницу входа в систему.Я включил в учебник настроенную версию, думая, что большинству людей нужно будет знать, как это сделать.

2 голосов
/ 28 июня 2011

По умолчанию он выглядит намного лучше моего, поэтому вы можете закомментировать строку 159!

Комментарий за строкой 159.

...