当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.1身份验证-无法重定向到登录页面

何修能
2023-03-14

试图阻止来宾用户的路由。当有人点击localhost:8000/AdminPanel时,它将检查用户是否以管理员身份登录。如果admin然后它工作正常,如果代理然后它重定向到登录页面,但如果我作为访客用户点击链接,它不会将我重定向到登录页面,而是显示一些错误:

路由中的错误异常。php第53行:尝试获取非对象的属性。

这是我的路线。php文件:

Route::get('/AdminPanel', function () {
    if (Auth::user()->user_type_id == 1) { // line 53
        return view('frontend.AdminPanel');       
    }

    if (Auth::user()->user_type_id == 2) {
        return view('auth/login');
    }

    if (Auth::guest()) {
        return view('auth/login');
    }
});

共有2个答案

姜煌
2023-03-14

为什么不试试这个?Route::获取(/AdminPanel,函数(){

        if(Auth::user()->user_type_id==1){    //line 53
            return view('frontend.AdminPanel');       
        }
        elseif(Auth::user()->user_type_id==2){
            return view('auth/login'); 
        }else{
            return view('auth/login');
        }

    })

所以用户类型ID2和来宾用户将重定向到登录页面?

麻华辉
2023-03-14

这是因为如果用户未登录,Auth::user()将为null。因此,它抛出一个错误,即它试图获取非对象的属性。您应该首先检查是否设置了Auth,如下所示:

if(Auth::check()){
    if(Auth::user()->user_type_id==1){    //line 53
            return view('frontend.AdminPanel');       
    }
    else if(Auth::user()->user_type_id==2){
            return view('auth/login');
    }
}
else{ 
    return view('auth/login');
}
 类似资料:
  • 我在auth中间件方面遇到了一些问题。我将中间件放在一个路由组中,并回滚了users表。我希望应用程序将我重定向到我的登录/搜索页面,但它没有这样做,它只是给了我“尝试获取非对象的属性”,它指的是我的仪表板视图中的函数(我不应该访问该函数)。 这是我的路线代码: 以下是我的观点: 另外,我不确定从数据库中删除用户是否意味着Laravel将自动删除用户会话。 谢谢你的帮助!

  • 在不生成Laravel默认身份验证控制器的情况下,我创建了自己的登录和注册控制器。 我的路线是这样的 用于登录 登记 一切都很好。现在我需要一件事。每当我放置中间件时,一个未经身份验证的用户将被重定向到我的自定义登录页面路由到。 如何做到这一点?

  • 我使用Laravel 5.2。我想问一个问题。如何更改重定向登录表单在laravel当我们已经做登录?我使用的是来自Php artisan make: auth的auth。 我已经登录并重定向到localhost:8000/admin 然后我再次打开localhost:8000/登录。它将重定向到“/”或localhost:8000/ 我的问题是如何将“/”更改为“/”管理员“?因此,即使我已经登

  • 问题内容: 编辑:忘记提及我与AngularJs在一起仅一周了,因此,如果您看到某些东西,您认为应该做得更好,并且与问题无关,请随时在评论部分告诉我。 好的,所以我有我的身份验证控制器和提供程序,由于它们与问题范围无关,因此将不显示。然后,我有一个拦截器来检查拨打电话时用户是否已通过身份验证。如果是这样,我将请求的标头设置为包括用户的Token(如果没有),则将用户重定向到登录页面,甚至不向服务器

  • 默认情况下,身份验证后的Spring Security会将您重定向到您之前尝试访问的受保护页面。 当我实现自己的成功处理器时 我不能达到同样的效果。我试图重定向到referer,但在本例中,referer是/en/login页面。 基本上: 用户尝试访问受保护的url 将用户重定向到页面 验证后,用户应再次重定向到 如何使用custom successHandler实现这一点?

  • 我正在使用ApacheShiro开发JSF应用程序。我用Shiro引诱用户,并将其重定向到主页。这没有问题。验证后,当我尝试访问登录页面时,它不会将我重定向到主页。即使已经有loggedin用户,我也可以再次登录。正如巴卢斯克在他的博客文章中提到的,我正在进行程序登录。 这个滤镜是根据博文写的。 } 问题是什么?如果用户已经通过身份验证,我该如何重定向用户? 编辑:现在,如果用户已经通过身份验证,