Laravel 5.2有条件登录 [英] Laravel 5.2 Login With Condition

查看:64
本文介绍了Laravel 5.2有条件登录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我有laravel默认的用户表.但是我添加了一个名为状态"的新列.
因此,用户表上的列是ID,名称,电子邮件,密码,记住令牌,created_at,updated_at,状态
状态值在0到1之间.对于admin来说是1,对于常规用户来说是0.
我也有身份验证,但问题是如何在登录时检查用户的状态是0还是1,以便可以根据其状态重定向它? -管理员将转到管理面板,而用户将返回首页

So, I have users table which is default by laravel. But I add a new column named 'status'.
So the columns on the users table are id, name, email, password, remember_token, created_at, updated_at, status
The status values are between 0 and 1. 1 for admin, and 0 for regular user.
Also I have auth, but the problem is how can I check if users' status is 0 or 1 when login so that I can redirect it according to their status? -- admin will go to admin panel and user will go to home

laravel为用户默认添加了状态"

User default by laravel with addition 'status'

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

    class User extends Authenticatable
    {
        use Notifiable;
        protected $fillable = [
            'name', 'email', 'password', 'status',
        ];
        protected $hidden = [
            'password', 'remember_token',
        ];
    }

laravel也默认设置HomeController

HomeController also default by laravel

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function index()
    {
        return view('home');
    }
}

laravel也默认使用LoginController

LoginController also default by laravel

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    use AuthenticatesUsers;
    protected $redirectTo = '/home';

    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
}

谢谢.

推荐答案

在验证用户身份之后,您可以覆盖App\Http\Controllers\Auth\LoginController中的authenticated()方法以添加逻辑:

You can override the authenticated() method in App\Http\Controllers\Auth\LoginController to add logic after the user is authenticated:

   protected function authenticated($request,$user)
    {
        if(\Auth::user()->status){
            return redirect('/admin'); 
        }

        return redirect('/home');   
    }

这篇关于Laravel 5.2有条件登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆