我正在寻找一个简洁的例子,说明如何在“MojolicIoUs”应用程序中使用“under”功能.我发现的所有例子都涉及“MojolicIoUs :: Lite”(我不使用).
例如,我在这里听了 http://mojocasts.com/e3的截屏视频,我想我理解了功能不足的概念.但我不使用“MojolicIoUs :: Lite”,所以似乎我不能直接按照这个例子.我一直未能尝试采用Lite-example的非Lite风格. (这可能也是因为我仍然对框架不熟悉)
例如,我在这里听了 http://mojocasts.com/e3的截屏视频,我想我理解了功能不足的概念.但我不使用“MojolicIoUs :: Lite”,所以似乎我不能直接按照这个例子.我一直未能尝试采用Lite-example的非Lite风格. (这可能也是因为我仍然对框架不熟悉)
相关代码如下所示:
# Router my $r = $self->routes; # Normal route to controller $r->get('/') ->to('x#a'); $r->get('/y')->to('y#b'); $r->any('/z')->to('z#c');
因此所有这些路由都需要通过user / pass保护.我试着这样做:
$r->under = sub { return 1 if ($auth) };
但这不编译,我只是找不到匹配此代码风格的示例…
任何人都可以给我正确的提示或链接吗?
请原谅我,如果这是在文档中的某个地方…它们可能是完整的,但对于像我这样的简单头脑的人来说,他们缺乏可理解的例子:-P
解决方法
Lite-examples的类似代码如下所示:
# Router my $r = $self->routes; # This route is public $r->any('/login')->to('login#form'); # this sub does the auth-stuff # you can use stuff like: $self->param('password') # to check user/pw and return true if fine my $auth = $r->under( sub { return 1 } ); # This routes are protected $auth->get ('/') ->to('x#a'); $auth->post('/y')->to('y#b'); $auth->any ('/z')->to('z#c');
希望这对任何人都有帮助!
(解决方案:http://mojolicio.us/perldoc/Mojolicious/Routes/Route#under)