编程语言
首页 > 编程语言> > php-在Laravel 5上手动登录用户

php-在Laravel 5上手动登录用户

作者:互联网

我正在使用facebook JS将用户登录到laravel 5应用程序.
我能够将信息正确地添加到数据库,但是我试图手动登录用户,但无法弄清楚.

这是我的控制器:

    <?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);



    }
}

当我运行该命令并且数据库中没有此类用户时,将创建该用户,并且在尝试手动登录时收到以下消息:

ErrorException in Guard.php line 425:
Argument 1 passed to Illuminate\Auth\Guard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, integer given

我一直在网上寻找类似的情况,但找不到任何有帮助的…

请帮我!

解决方法:

您应该将用户对象(而不是ID)传递给Auth :: login.因此,只需将您的功能更改为这样:

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

标签:laravel-validation,laravel-5,facebook,php
来源: https://codeday.me/bug/20191120/2042504.html