如果用户未登录 Laravel,则重定向到登录页面
Posted
技术标签:
【中文标题】如果用户未登录 Laravel,则重定向到登录页面【英文标题】:Redirect to Login page if ther user not logged in Laravel 【发布时间】:2015-09-04 06:19:45 【问题描述】:我使用的是 Laravel 版本 5。我的项目有一个路由文件,其中包含很多行。如果用户未登录,我需要将身份验证(如重定向到登录页面)。如果用户未登录,我还想阻止直接 URL 访问。我该怎么办?
我使用了下面的代码
Route::group(array('before' => 'auth'), function()
Route::get('/', 'HomeController@index');
);
但这仅阻止主页。我需要保护我所有的路线。并且还建议我如何减少路由文件行。
【问题讨论】:
【参考方案1】:您可以在一个组中放置任意数量的路由
Route::group(array('before' => 'auth'), function()
Route::get('/', 'HomeController@index');
Route::post('store', 'HomeController@store');
Route::get('show', 'AnotherController@index');
// ...
);
如果您确实需要保护所有您的路线,您可以添加
public function __construct()
$this->middleware('auth');
到你的主控制器类,Http/Controllers/Controller
编辑您的评论,取自docs,您可以使用
return redirect()->intended('view');
/**
* Handle an authentication attempt.
*
* @return Response
*/
public function authenticate()
if (Auth::attempt(['email' => $email, 'password' => $password]))
return redirect()->intended('dashboard');
【讨论】:
那么还有一个你没有描述的错误。检查存储/日志中的 laravel.log 是否有错误 我检查了日志文件。我的问题似乎没有错误。 但是您的第二个 __construct 函数运行良好。我想知道哪种方法最好? 我想知道一件事。登录后有没有办法重定向上次访问的url? 我如何在模块中使用身份验证以上是关于如果用户未登录 Laravel,则重定向到登录页面的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security:如果身份验证失败,则重定向到登录页面
Vue SPA - 检查用户是不是通过身份验证,如果没有则重定向到登录