Php 在Laravel 5上手动登录用户
我正在使用FacebookJS将用户登录到Laravel5应用程序。 我能够正确地将信息添加到数据库中,但我正在尝试手动登录用户,无法找到它 这是我的控制器: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
<?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分钟:-)