簡體   English   中英

登錄自定義路由被Auth拒絕

[英]Login custom route being rejected by Auth

Router::scope('/:club_slug', function ($routes) {
    $routes->connect('/login', ['controller' => 'Users', 'action' => 'login']);
});

因此,當我嘗試訪問http://example.com/club-name/login ,系統將通過Flash消息重定向到http://example.com/users/loginYou have to login to access this area

Auth loginAction[controller => 'Users', 'action' => 'login'] ,因為我在問題開頭提到的自定義路由指向的是loginAction上指定的路徑, loginAction我認為該路由會知道我說的是同一件事,但事實並非如此。

動態路線元素不會自動添加/識別,您要么必須使用persist選項來持久化它們(僅適用於該特定路線):

Router::scope('/:club_slug', function ($routes) {
    $routes->connect(
        '/login',
        ['controller' => 'Users', 'action' => 'login'],
        ['persist' => ['club_slug']]
    );
});

或URL過濾器(影響所有使用club_slug元素的路由):

Router::addUrlFilter(function ($params, $request) {
    if (isset($request->params['club_slug']) && !isset($params['club_slug'])) {
        $params['club_slug'] = $request->params['club_slug'];
    }
    return $params;
});

否則,您必須手動將元素傳遞給您的登錄操作(無論當前URL如何,這都將匹配club_slug路由):

'loginAction' => [
    'controller' => 'Users',
    'action' => 'login',
    'club_slug' => 'club-slug' // wherever it may have come from
]

也可以看看

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM