【问题标题】:Laravel 5.3 Authentication in depence of userLaravel 5.3 身份验证依赖于用户
【发布时间】:2017-07-15 12:13:51
【问题描述】:

我有一个表 hosts 并希望在用户为 admin 时重定向到不同的页面(DB is_admin boolean)。 我使用以下身份验证方法:

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check())
    {
        if(Auth::user()->isAdmin == 1) {
            return redirect('/home');
        }
        else
        {
            return redirect('/api');
        }
    }

    return $next($request);
}

我的主机类:

public function isAdmin()
{
    return $this->is_admin;
}

}

谁能帮帮我?

【问题讨论】:

    标签: php laravel authentication laravel-5 laravel-5.3


    【解决方案1】:

    改变

    if(Auth::user()->isAdmin == 1) {
    

    if(Auth::user()->isAdmin() == 1) {
    

    你定义了一个函数,而不是一个属性

    【讨论】:

    • 谢谢,但不幸的是它每次都重定向到 /home ,即使用户不是管理员也是如此。如果取消注释代码它也可以工作=>我真的不知道为什么?! Laravel 5.3 是否有另一种方法检查用户信用?
    • 如果is_admin == 1,它只会重定向到/home,检查你的数据库
    • 是的,我知道,但如果我评论整个 RedirectIfAuthenticated 方法,它也会重定向,有什么想法吗?
    【解决方案2】:

    尝试这样做 --

    中间件

    if ( Auth::check() && Auth::user()->isAdmin() ) {
        return $next($request);
    }
    
    return redirect('/');
    

    这是因为布尔返回 1 或 0 表示真或假。所以不需要检查它是否是真的== true

    不要忘记在数据库中添加一个带有is_admin 的列,因为您要从数据库中获取is_admin

    【讨论】:

      猜你喜欢
      • 2015-01-01
      • 1970-01-01
      • 2017-05-25
      • 2017-05-13
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      相关资源
      最近更新 更多