[英]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/login
。 You 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.