php - 传递给 (Symfony) Response::setContent() 的参数必须是字符串类型或 null,给定对象
问题描述
当按下 URL 时,我尝试使用 Laravel 7 和包(Socialite)通过 Facebook 注册:
<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>
重定向页面运行应用程序,我在 facebook 开发人员中创建为 img:
当按下(以 Mahmoud 继续)并输入我的电子邮件并传递此错误时显示:
传递给 Symfony\Component\HttpFoundation\Response::setContent() 的 TypeError 参数 1 必须是字符串或 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');
控制器:
<?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;
}
}
.env:
FB_CLIENT_ID = XXX
FB_CLIENT_SECRET = XXX
FB_REDIRECT = 'http://localhost:8000/callback/facebook'
配置/服务.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,
和
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
请你能帮我我尝试了很多解决方案,但没有办法。
解决方案
我应该返回一个响应而不是控制器中的 $user 对象
改变
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);
}
推荐阅读
- scipy - 有没有办法使用 scipy.interpolate 进行 1d 样条插值,边界条件指定远离数据?
- python - 无法在我的虚拟机上使用 Selenium Webdriver 进行身份验证和登录
- python - 从数据框列表创建 3d 曲面图
- keras - 我的基本事实是一系列灰度图像
- javascript - MUI 的 ListItemText 组件中的目标跨度以通过 useStyle 挂钩应用样式
- android - 离子电容器android模拟器使控制台日志在终端中可见
- javascript - 将 Prev Next 控件添加到 Carousel
- python - 将 Python 解释器嵌入到 C 程序中时,如何选择使用哪个 Python 解释器?
- python - 使用 python 将 PDF 插入 Postgres 数据库并检索它
- javascript - 在强大的 form.parse 中, throw 关键字无法正常工作