如何在Laravel 5.2中在登录条件上添加额外的逻辑 [英] How to add extra logic on login condition in Laravel 5.2

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

问题描述

我只是想说用户是否不活跃,不允许登录.我已经按如下方式制作了控制器,但不确定要进行的操作或要做的其他事情!

I just wanted to say if the user is not active, don't allow to login. I have made the controller as below, I am not sure what I am miising or what else I have to do here to make this work!



    namespace App\Http\Controllers\Auth;

    use Illuminate\Auth\Authenticatable;
    use Illuminate\Foundation\Auth\AuthenticatesUsers;
    use App\User;
    use Validator;
    use App\Http\Controllers\Controller;
    use Illuminate\Foundation\Auth\ThrottlesLogins;
    use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;

    class AuthController extends Controller{
        use AuthenticatesAndRegistersUsers, ThrottlesLogins;

        protected $redirectTo = '/home';


        public function __construct()
        {
            $this->middleware($this->guestMiddleware(), ['except' => 'logout']);
        }


        protected function validator(array $data)
        {
            return Validator::make($data, [
                'name' => 'required|max:255',
                'email' => 'required|email|max:255|unique:users',
                'password' => 'required|min:6|confirmed',
            ]);
        }


        protected function create(array $data)
        {
            return User::create([
                'name' => $data['name'],
                'email' => $data['email'],
                'password' => bcrypt($data['password']),
            ]);
        }

        public function authenticate()
        {
            if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
                // Authentication passed...
                return redirect()->intended('dashboard');
            }
        }

    }

我的想法是authenticate()方法应该可以解决问题!

My thinking was authenticate() method should do the trick!

有什么建议吗?

推荐答案

以下代码适用于我的情况:

The below code worked for my case:

protected function getCredentials(Request $request)
    {
        return [
            'email' => $request->input('email'),
            'password' => $request->input('password'),
            'active' => true
        ];
    }


对于Laravel 5.3,需要将以下代码添加到LoginController


for Laravel 5.3 need to add following code to LoginController

protected function credentials(Request $request)
    {
        return [
            'email' => $request->input('email'),
            'password' => $request->input('password'),
            'active' => true
        ];
    }

这篇关于如何在Laravel 5.2中在登录条件上添加额外的逻辑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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