2011-01-24 23 views
5

yılında yönlendirme için yardıma ihtiyacınız yöntem ve kullanıcı kimlik doğrulaması ise 1 döndürür "onay" yöntemi ile "Yetkilendirmeler" denetleyici " göstermek". "Varsayılan" sayfam var ("/profile").Birlikte "<strong>sayfalar</strong>" denetleyiciniz Mojolicious

Kullanıcı kimlik doğrulaması yapılıyorsa veya kullanıcının kimlik doğrulaması yapılmadıysa, yetkilendirme formu ile tüm sayfaları yeniden yönlendirmeli/yönlendirmeli. Benim kod düzgün (auth FastNotes örnek uygulamaya göre) çalışmak istemiyor: (

Yetkilendirmeler # create_form - yetkilendirme formu ile html şablon

$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'); 
+3

"Uygun şekilde çalışmak istemiyor" ifadesinin ne anlama geldiğini açıklar mısınız? Ne yapması gerektiğini açıkladın, ama aslında ne olduğunu değil. – mfontani

+0

Varsa, check() 'in doğru döndüğünden emin misiniz? –

cevap

11

Size ya işlemek için / istiyoruz görünüyor. ilk o güzergah koşulunu vurur ve kimlik doğrulaması yapılmış veya değilseniz bakım asla çünkü bir giriş formu yA bir profil sayfa. yukarıdaki kod daima /olarak giriş gösterecektir.

İlk rotanızda / (köprüden sonra varsayılan rotanız olan) için bir anahtar kullanmayı deneyin.

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); 
}); 

senin örneğinde birkaç not:

  • Onun örnekler için Mojolicious :: Lite kullanırsanız hata ayıklama sorunları yardımcı olmak için çok daha kolay.
  • bridge yerine under kullanmayı deneyin. Bu yardımcı olur

Hope (..) aracılığıyla> -

  • $ r-> get (..) $ yerine r-> rota (..) ait kullanmayı deneyin.

  • İlgili konular