Laravel 5.3具有附加条件的身份验证

时间:2016-10-26 12:26:04

标签: laravel authentication laravel-5.3

Laravel 5.3中有些变化。在文档中有这个控制器,我们可以在其中添加我们的附加条件:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Auth;

class AuthController extends Controller
{
    /**
     * Handle an authentication attempt.
     *
     * @return Response
     */
    public function authenticate()
    {
        if (Auth::attempt(['email' => $email, 'password' => $password])) {
            // Authentication passed...
            return redirect()->intended('dashboard');
        }
    }
}

但是这个控制器:AuthController不再存在..... 只有LoginController

我应该创建那个AuthController还是什么?

所以问题是如何为用户添加一个条件

'active' => 1

2 个答案:

答案 0 :(得分:2)

您可以在5.3中使用LoginController。做你想做的事情的一种方法是覆盖sendLoginResponse()方法并在它的开头添加这样的东西:

if (!auth()->user()->active) {
    auth()->logout();
    return redirect('/');
}

这将注销用户他是否处于非活动状态并将其重定向到根目录。这将起作用active是布尔值。

答案 1 :(得分:0)

您可以在LoginController中指定additional condition,例如'active'= 1:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    /**
     * Handle an authentication attempt.
     *
     * @return Response
     */
    public function authenticate(Request $request)
    {
        $email = $request->input('email');
        $email = $request->input('email');
        if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
            // Authentication passed...
            return redirect()->intended('dashboard');
        }
    }
}