perl – 需要Mojolicious中的路由帮助
发布时间:2020-12-15 21:47:45 所属栏目:大数据 来源:网络整理
导读:我有带“show”方法的“Pages”控制器和带有“check”方法的“Auths”控制器,如果用户通过身份验证,则返回1. 我有“默认”页面(“/ profile”). 我需要重定向到/如果用户已经过身份验证,并且如果用户未经过身份验证,则将所有页面重定向到/使用授权表单.我的
我有带“show”方法的“Pages”控制器和带有“check”方法的“Auths”控制器,如果用户通过身份验证,则返回1.
我有“默认”页面(“/ profile”). 我需要重定向到/如果用户已经过身份验证,并且如果用户未经过身份验证,则将所有页面重定向到/使用授权表单.我的代码不想正常工作(基于FastNotes示例应用程序的auth):( 使用授权表单验证#create_form – html-template. $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作为示例,则更容易帮助调试问题. 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |