gpt4 book ai didi

perl - 在 Mojolicious 中需要有关路由的帮助

转载 作者:行者123 更新时间:2023-12-04 17:12:59 24 4
gpt4 key购买 nike

我有“”页面“ Controller ”显示“方法和授权“ Controller ”返回“9195677”方法检查“9” 1 如果用户已通过身份验证。
我有“默认”页面(“/profile”)。

如果用户已通过身份验证,我需要重定向到/,如果用户未通过身份验证,我需要使用授权表单将所有页面重定向到/。我的代码不想正常工作(基于 FastNotes 示例应用程序的身份验证):(

auths#create_form - 带有授权表单的 html 模板。

    $r->route('/')       ->to('auths#create_form')   ->name('auths_create_form');
$r->route('/login') ->to('auths#create') ->name('auths_create');
$r->route('/logout') ->to('auths#delete') ->name('auths_delete');
$r->route('/signup') ->via('get') ->to('users#create_form') ->name('users_create_form');
$r->route('/signup') ->via('post') ->to('users#create') ->name('users_create');
#$r->route('/profile') ->via('get') ->to('pages#show', id => 'profile') ->name('pages_profile');

my $rn = $r->bridge('/')->to('auths#check');
$rn->route ->to('pages#show', id => 'profile') ->name('pages_profile');

$rn->route('/core/:controller/:action/:id')
->to(controller => 'pages',
action => 'show',
id => 'profile')
->name('pages_profile');

# Route to the default page controller
$r->route('/(*id)')->to('pages#show')->name('pages_show');

最佳答案

看来你想要/呈现登录表单 个人资料页面。上面的代码将始终显示 /作为登录,因为它首先满足该路由条件,并且永远不会关心您是否通过身份验证。

尝试在您的初始路由中切换 / (不需要桥后的默认路由)。

my $r = $self->routes;
$r->get('/' => sub {
my $self = shift;
# Check whatever you set during authentication
my $template = $self->session('user') ? '/profile' : '/login';
$self->render( template => $template );
});

关于您的示例的一些说明:
  • 如果您使用 Mojolicious::Lite 作为示例,帮助调试问题会容易得多。
  • 尝试使用 under而不是 bridge .
  • 尝试使用 $r->get(..) 而不是 $r->route(..)->via(..)

  • 希望这可以帮助。

    关于perl - 在 Mojolicious 中需要有关路由的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782232/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com