我在我的laravel 5.2应用程序中使用了我的路由器 .
预期的行为是:
-
未注册用户试图访问受保护页面
-
重定向到登录
-
重定向(成功时)到目标页面
当然,如果没有预定页面(当他激活登录时),用户应该被重定向到他的“仪表板”
例:
/* Create a Payment | Only for registered Users (client) */
Route::post('payment', 'PaymentController@create')->middleware('client');
用户将被重定向到登录页面,但是,登录后,他将被重定向到我在我的authcontroller中定义的页面$ redirectTo
protected $redirectTo = '/backoffice';
有没有办法将重定向设置为(默认为 or )
4 回答
如果您希望未登录的用户重定向到登录页面,并且在成功登录后返回到预期的URL或在变量中设置的默认值 .
那么你可能会使用这样的东西 .
Laravel将为您保留“intention.url”,并在成功登录后将用户重定向回/ backoffice .
这是另一个答案about various Laravel versions
我发现
AuthenticatesUsers.php
中定义的AuthenticatesUsers Trait
具有函数handleUserWasAuthenticated
,它检查Laravel默认身份验证AuthController.php
是否定义了方法authenticated
. 如果未定义此方法,则用户始终重定向到您在$redirectTo
属性中定义的任何内容 . 它不会将用户重定向到预期的URL . 但是,如果您按如下方式定义方法,则在AuthController.php
中:redirect()->intended()
将按预期正常工作,在用户通过身份验证后,他将被重定向到预期的URL .我正在使用Laravel 5.4
的LoginController:
在5.2中仅在第31行附近更改“app / Http / Controllers / Auth / AuthController.php”保护$ redirectTo ='/ Your_View_page';