1

このチュートリアルでは、彼はカスタムログインフォームを作成し、それがどのように行われるかを示します検索してください

カスタムログインを削除してデフォルトに戻すにはどうすればよいですか?

コーディングするには次のようになります

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は、ログインフォームの生成に使用するサブルーチンを指定しています。認証プラグインには、使用できるデフォルトのフォームが付属していることに注意してください。本当に必要な場合に備えて、独自の作成方法を示すために、これを含めています。デフォルトのものは実際には私のものよりもはるかに良く見えるので、159行目をコメントアウトすることをお勧めします!

4

2 に答える 2

4

私はそのチュートリアルの作者です。混乱させて申し訳ありません!私が言わなければならないのは、「Login.pmの157行目、158行目、および159行目をコメントアウトする」ことです。CGI :: Application :: Plugin :: Authenticationモジュールに組み込まれているデフォルトのフォームを使用するために、LOGIN_RUNMODE、POST_LOGIN_RUNMODE、またはRENDER_LOGINを指定する必要はありません。これらはすべて、ログインページのカスタマイズに役立つように提供されています。ほとんどの人がそうする方法を知る必要があるだろうと考えて、私はチュートリアルにカスタマイズされたバージョンを含めました。

于 2011-06-28T21:34:56.217 に答える
2

デフォルトのものは実際には私のものよりもはるかに良く見えるので、159行目をコメントアウトすることをお勧めします!

159行目をコメントアウトします。

于 2011-06-28T14:34:25.547 に答える