Php 在Laravel 5上手动登录用户

Php 在Laravel 5上手动登录用户,php,facebook,laravel-5,laravel-validation,Php,Facebook,Laravel 5,Laravel Validation,我正在使用FacebookJS将用户登录到Laravel5应用程序。 我能够正确地将信息添加到数据库中,但我正在尝试手动登录用户,无法找到它 这是我的控制器: <?php namespace App\Http\Controllers; use App\Http\Requests; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Http\lib\TopAdditions; use

我正在使用FacebookJS将用户登录到Laravel5应用程序。 我能够正确地将信息添加到数据库中,但我正在尝试手动登录用户,无法找到它

这是我的控制器:

    <?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\lib\TopAdditions;
use App\Http\lib\GeneralFunctions;
use App\User;

class FacebookLoginController extends Controller{
    public function FacebookRegistration(){


        $facebook = new User();
        $isThereAUser = User::where('name', $_GET['name'])->get();

        if(!count($isThereAUser) > 0){
            $facebook->name = $_GET['name'];
            $facebook->email = $_GET['email'];
            $facebook->password = sha1($_GET['password']);
            $facebook->remember_token = $_GET['token'];
            $facebook->save();

            $id = User::where('name', $_GET['name'])->get();
            $this->LoginUser($id);

        }

    }

    public function LoginUser($id){

        \Auth::login($id[0]['id'],true);



    }
}

您应该将用户对象而不是id传递给
Auth::login
。因此,只需将函数更改为如下所示:

public function LoginUser($user){
    \Auth::login($user, true);
}

我也有同样的问题,这是在Laravel 5.4中对我有效的解决方案:

public function LoginUser($id){
    $user = User::find($id);
    auth()->login($user);
}

我猜你说的$user就是这个意思$user=user::where('name',$\u GET['name'])->GET()??如果是这样的话,那就不行了。。。我得到一条消息:“传递给Illumb\Auth\Guard::login()的参数1必须实现接口Illumb\Contracts\Auth\Authenticatable,给定的Illumb\Database\Eloquent\Collection实例”它应该是
$user=user::where('name',$\u get['name'])->first()为了获得用户对象,否则你会得到一个集合:)你太棒了@shaddy!非常感谢!就这样,它要我等2分钟:-)