如何使用Auth ::在Laravel 5.0中尝试无密码登录?

hen*_*spt 9 php authentication login oauth laravel-5

我正在使用Laravel 5.0.我希望做一个登录仅使用用户名(无密码),因为我使用单点登录访问我的Laravel项目,因此,如果单次登录的用户登录成功,它将检查到我的数据库,如果用户的用户名谁登录已注册或未注册.
我整天都在寻找这个,但我仍然找到了线索.

我有一个错误:

传递给Illuminate\Auth\Guard :: login()的参数1必须实现接口Illuminate\Contracts\Auth\Authenticatable,null给出

如果我在LoginController中使用下面的代码:

$user = User::where('USER_NAME', '=', $_GET['UserName'])->first();
if(Auth::login($user)->USER_ID == $_GET['UserName']){
   return redirect('Home');
}
Run Code Online (Sandbox Code Playgroud)

如果我在LoginController中使用下面的代码:

if(Auth::attempt(['USER_ID' => $_GET['UserName']])){
   return redirect('Home');
}
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

未定义的索引:密码

Sov*_*von 6

根据文档:

将通过电子邮件列的值检索用户。如果找到用户,存储在数据库中的散列密码将与通过数组传递给方法的散列密码值进行比较。

因此,必须在此方法中检查密码,因此它是必需参数。

您可以像下面这样登录:

$user = User::where('USER_NAME', '=', $_GET['UserName'])->first();

if (empty($user)) {
    abort(404);
}

if(Auth::loginUsingId($user->id)){
    return redirect('Home');
}
Run Code Online (Sandbox Code Playgroud)