Php 传递给(Symfony)Response::setContent()的参数的类型必须为string或null,即给定的对象
我尝试通过Facebook注册,使用Laravel 7和package(社交名媛),按下URL:Php 传递给(Symfony)Response::setContent()的参数的类型必须为string或null,即给定的对象,php,laravel,Php,Laravel,我尝试通过Facebook注册,使用Laravel 7和package(社交名媛),按下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 accou
<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>
我的路线:
Route::get('/redirect/{service}','SocialiteController@redirect');
Route::get('/callback/{service}','SocialiteController@callback');
控制器:
<?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;
}
}
config/services.php:
'facebook' => [
'client_id' => env ('FB_CLIENT_ID'),
'client_secret' => env ('FB_CLIENT_SECRET'),
'redirect' => env ('FB_REDIRECT')
],
在config/app.php中,我添加了:
Laravel\Socialite\SocialiteServiceProvider::class,
及
我尝试了很多解决方案,但没有办法。我应该返回一个响应,而不是控制器中的$user对象 改变
public function callback($service){
$user = Socialite::with($service) -> user();
return $user;
}
到
尝试:
}我的猜测是,控制器中的
回调
函数应该返回响应,而不是$user
对象。您是否有完整的堆栈跟踪,即创建无效响应的位置?顺便说一下,您的帖子包含了您的facebook客户端id+机密。这些都是潜在的敏感信息,如果可能的话应该更改。非常感谢各位,我应该返回一个响应,而不是控制器中的$user对象
Laravel\Socialite\SocialiteServiceProvider::class,
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
public function callback($service){
$user = Socialite::with($service) -> user();
return $user;
}
public function callback($service){
$user = Socialite::with($service)->stateless()->user();
return response()->json($user);
}
public function callback($service){
$user = Socialite::with($service) -> user();
return (array)$user;