传递给 Symfony\Component\HttpFoundation\Response::setContent() 的参数 1 必须是 string 或 null 类型,给定对象

Mah*_*iab 2 php package laravel

我尝试使用 Laravel 7 和包(Socialite)通过 Facebook 注册,按下 URL 时:

<div class="form-group row mb-0">
     <div class="col-md-6 offset-md-4">
          <a href="{{url('redirect/facebook')}}">login with your facebook account</a>
     </div>
</div>
Run Code Online (Sandbox Code Playgroud)

重定向页面运行应用程序,我在 facebook 开发人员中创建为 img:

在此输入图像描述

当按(继续作为 Mahmoud)并输入我的电子邮件并传递时,此错误显示:

传递给 Symfony\Component\HttpFoundation\Response::setContent() 的 TypeError 参数 1 必须是 string 或 null 类型,给定的对象,在 C:\wamp64\www\Starter\vendor\laravel\framework\src\Illuminate\ 中调用第 65 行 Http\Response.php

和 URL 上的 chrom 框如下:

http://localhost:8000/callback/facebook?code=AQDlnu6qDKxTV6nG_vN4DYMKSyVP-zEKTL_uJDKbENBTc-pBwtIxpLRkcUS_zebL3nbPo8RjKKC3D_UbZkHM8dz5iZU8c4-PPPdyS_teoLZZ77kVf1pLGCx0ggTwx0EJys8nK3aPE8BugkbgcXTFUt7qcDxQcX1ptlmG9_0qSbuifaEg678bl71Gbm3qU5Jx-ZsonmuadY3kHTbq8vG-3s2jqV4KkxDSCw-m-4LrIe46v73EXFzG1wFNMbkWB4MJay5ZewPjI2ah3p8o5FCgGLp1Rs4clsKW5B2fQyoWc6MM-Ut2jESoQ7YMOjZpuX5kA1aWP3To1TncAjKpWsAevIa&state=n0XP5Kf68IZlOUqm1pwUYryb9md9nHCdSnatvbpO#=_

我的路线:

Route::get('/redirect/{service}','SocialiteController@redirect');
Route::get('/callback/{service}','SocialiteController@callback');
Run Code Online (Sandbox Code Playgroud)

控制器:

    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Laravel\Socialite\Facades\Socialite;

class SocialiteController extends Controller
{
    public function redirect($service){
        return Socialite::driver($service)->redirect();

    }
    public function callback($service){

         $user = Socialite::with($service) -> user();
         return $user;

    }

}
Run Code Online (Sandbox Code Playgroud)

.env:

FB_CLIENT_ID = FB_ID
FB_CLIENT_SECRET = FB_secret
FB_REDIRECT = 'http://localhost:8000/callback/facebook'
Run Code Online (Sandbox Code Playgroud)

配置/services.php:

 'facebook' => [
    'client_id' => env ('FB_CLIENT_ID'),
    'client_secret' => env ('FB_CLIENT_SECRET'),
    'redirect' => env ('FB_REDIRECT')
],
Run Code Online (Sandbox Code Playgroud)

在 config/app.php 中我添加了:

Laravel\Socialite\SocialiteServiceProvider::class,
Run Code Online (Sandbox Code Playgroud)

'Socialite' => Laravel\Socialite\Facades\Socialite::class,
Run Code Online (Sandbox Code Playgroud)

请你能帮我吗,我尝试了很多解决方案,但没有办法。

Mah*_*iab 5

我应该返回一个响应而不是控制器中的 $user 对象

改变

public function callback($service){

     $user = Socialite::with($service) -> user();
     return $user;

}
Run Code Online (Sandbox Code Playgroud)

        public function callback($service){
           $user = Socialite::with($service)->stateless()->user();
           return response()->json($user);
    
        }
Run Code Online (Sandbox Code Playgroud)