如何个性化登录laravel

时间:2017-09-03 22:57:38

标签: laravel laravel-5.3

我已经尝试按照documentation,但我没有成功。 我需要在原始登录系统中添加一个条件

我尝试了以下内容:

export { charOrdAFactoryBase }

我的路线

namespace App\Http\Controllers\Auth;

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

class LoginController extends Controller
{

    use AuthenticatesUsers;

    protected $redirectTo = '/';

    public function authenticate()
    {
        if (Auth::attempt(['email' => $email, 'password' => $password, 'type' => 'cliente'])) {

            dd('autenticate');   

        }
    }

}
错误:

Route::post('/login', 'Auth\LoginController@login');

有谁知道我该怎么做?

-----------已决定-----------

我不知道这是否是最安全的方式,但它的工作原理如下:

ErrorException: Undefined variable: email in /var/www...

我的路线:

public function authenticate(Request $request)
{

    $this->validateLogin($request);

    $input=$request->all();
    $password=$input['password'];
    $email=$input['email'];

    if (Auth::attempt(['email' => $email, 'password' => $password, 'type'=>'cliente'])) {

        return redirect()->intended('/');
    }

    $this->incrementLoginAttempts($request);

    return $this->sendFailedLoginResponse($request);
}

1 个答案:

答案 0 :(得分:0)

您可以更改凭据。您不需要单独的authenticate方法。在LoginController中覆盖此特征中的函数:

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;    //*****add this

class LoginController extends Controller {

    use AuthenticatesUsers;

    protected $redirectTo = '/';

    **
    * Get the needed authorization credentials from the request.
    *
    * @param  \Illuminate\Http\Request  $request
    * @return array
    */
    protected function credentials(Request $request){
        return array_merge($request->only($this->username(), 'password'), ['type' => 'cliente']);
    }
}

希望它有所帮助。