Login 使用

Login 使用,login,mojolicious,mojolicious-lite,Login,Mojolicious,Mojolicious Lite,我在寻找Mojolicous的认证。我有两页momcorp1和momcorp2,但我不能过关 在几页之间,有人知道如何做到这一点 我读的是“在下面”,但我不知道怎么做 另一种形式是使用-Mojolicious::Plugin::Authentication-但更困难 这是代码,当1单击链接到momcorp 2时,显示错误 #!/usr/bin/env perl use Mojolicious::Lite; helper auth => sub { my $self = shift; r

我在寻找Mojolicous的认证。我有两页momcorp1和momcorp2,但我不能过关 在几页之间,有人知道如何做到这一点

我读的是“在下面”,但我不知道怎么做

另一种形式是使用-Mojolicious::Plugin::Authentication-但更困难

这是代码,当1单击链接到momcorp 2时,显示错误

#!/usr/bin/env perl
use Mojolicious::Lite;

helper auth => sub {
my $self = shift;

return 1 if
$self->param('username') eq 'user1' and
$self->param('password') eq 'user1';
};

get '/login'=> sub { shift->render('login') };

under sub {
my $self = shift;
return 1 if $self->auth;

$self->render(text => 'denied');
return;
};

post 'momcorp' => sub { shift->render(template => 'momcorp1') };

post '/momcorp/carol' => sub { shift->render(template => 'momcorp2') 
};

app->start

__DATA__

@@ login.html.ep
%= t h1 => 'login'
%= form_for '/momcorp' => (method => 'post') => begin
username: <%= text_field 'username' %>
password: <%= text_field 'password' %>
%= submit_button 'log in' 
%= end

@@ momcorp1.html.ep
%= t h1 => 'momcorp1'
 <a href="/momcorp/carol">Link to 2</a>

@@ momcorp2.html.ep
%= t h1 => 'momcorp2'
<a href="/momcorp">Link to 1</a>
#/usr/bin/env perl
使用mojolicous::Lite;
helper auth=>sub{
我的$self=shift;
返回1如果
$self->param('username')eq'user1'和
$self->param('password')eq'user1';
};
获取'/login'=>sub{shift->render('login');
下分{
我的$self=shift;
如果$self->auth,则返回1;
$self->render(文本=>'denied');
返回;
};
post'momcorp'=>sub{shift->render(模板=>'momcorp1');
post'/momcorp/carol'=>sub{shift->render(模板=>'momcorp2')
};
应用程序->开始
__资料__
@@login.html.ep
%=t h1=>“登录”
%=form_for'/momcorp'=>(方法=>'post')=>开始
用户名:
密码:
%=提交按钮“登录”
%=结束
@@momcorp1.html.ep
%=t h1=>“momcorp1”
@@momcorp2.html.ep
%=t h1=>“momcorp2”

以下是您想要的示例

#/usr/bin/env perl
使用mojolicous::Lite;
helper auth=>sub{
我的$c=班次;
返回1如果
$c->param('username')eq'user1'和
$c->param('password')eq'pass1';
返回0;
};
获取“/”=>sub{shift->render}=>'index';
post'/login'=>sub{
我的$c=班次;
如果($c->auth){
$c->session(auth=>1);
返回$c->将_重定向到('t1');
}
$c->flash('error'=>'error login/password');
$c->将_重定向到('index');
}=>“登录”;
获取“/logout”=>sub{
我的$c=班次;
删除$c->session->{auth};
$c->将_重定向到('index');
}=>“注销”;
下分{
我的$c=班次;
如果($c->session('auth')/“”)等式“1”,则返回1;
$c->render(文本=>'denied');
返回未定义;
};
获取'/test1'=>sub{shift->render}=>'t1';
获取'/test2'=>sub{shift->render}=>'t2';
应用程序->启动;
__资料__
@@index.html.ep
%=t h1=>“登录”
%if(闪烁(“错误”){
% }
%=form_for login=>(方法=>'post')=>begin
用户名:
密码:
%=提交按钮“登录”
%=结束
@@t1.html.ep
%=t h1=>“test1”
@@t2.html.ep
%=t h1=>“这是测试2”

你好,登录,谢谢。删除会话不起作用。注销后,我可以继续导航到t1和t2。显示:在/var/www/myapp.pl第33行的字符串eq中使用未初始化的值。您有什么版本的Mojolicious?