【问题标题】:Laravel 5 Routing with AuthLaravel 5 带身份验证的路由
【发布时间】:2015-12-06 14:10:00
【问题描述】:

你好

我正在尝试学习 laravel,我开始做一个只有 登录的人可以访问的页面(我还没有登录),但我'我只是测试,到目前为止我有:

Routes.php

<?php

Route::get('/', ['as' => 'index', function () {
    return view('index');
}]);


Route::get('/home', function () {
    return view('home');
});

好的,这个文件包含路由,我搜索了如何给路由命名,所以当他没有访问权限时我可以将用户重定向到该路由。

我的另一个文件是home.blade.php

<?php 

if (!Auth::check()){    
    return Redirect::route('index');        
} 

?>

那么这是检查用户是否登录的最佳方法吗?我给路由起了一个名字 index ,所以如果用户没有登录,我想重定向回 index ,但没有工作,我想知道这是否是实现我的目标的最佳选择。

谢谢

【问题讨论】:

  • 您是否遇到任何错误?只需使用 auth 中间件来检查登录
  • 当我尝试访问主页时,我得到一个空白页面,但我没有重定向到索引。
  • 所以你的登录页面是索引页面?并且主页是登录成功后的页面
  • 是的,你是对的!但是我还没有登录,我只是想看看重定向是否有效

标签: php laravel-5


【解决方案1】:

正如documentation 所说,最好的方法是:

    Route::get('/home', ['middleware' => 'auth', function () {
        // here will be only authorized access
        return view('home');
    }]);

默认定义的认证中间件。

【讨论】:

  • 哦,我明白了,它会将我重定向到登录页面,这是我的目标,有没有办法重定向到索引页面而不是 auth/login ,谢谢您的回答!
  • 您可以随意修改中间件。你可以在 app/Http/Middleware/Authenticate.php 找到它
【解决方案2】:

使用身份验证;装载外墙

if (Auth::check()){    

if(Auth::Guest()):
return Redirect::route('index');       
endif; 

} 

?>

【讨论】:

  • 谢谢你的回答,但是,我会限制在路线页面上的访问,无论如何谢谢你!
猜你喜欢
  • 2016-04-06
  • 1970-01-01
  • 2017-12-05
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 2013-05-16
相关资源
最近更新 更多