首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 8社交名流Facebook重定向没有工作/返回空

Laravel 8社交名流Facebook重定向没有工作/返回空
EN

Stack Overflow用户
提问于 2021-12-17 19:26:45
回答 1查看 135关注 0票数 0

我有一个以Laravel 8为后端的应用程序。我已经使用了一个名为"accounts“的自定义表,我想使用一些社交登录进程,从Facebook开始。问题是,我正面临一些问题,编码它。我的控制器没有正确地重定向到Facebook并返回{"data": null, "error": null}。我搜索了这个问题,并且已经修改了一些代码来解决这个问题,但是问题仍然存在。

路由

代码语言:javascript
复制
use App\Http\Controllers\LoginSocialController;

Route::get('account/{provider}/login', [LoginSocialController::class, 'redirectToProvider'])->name('social_login');
Route::get('account/{provider}/login/callback', [LoginSocialController::class, 'handleProviderCallback'])->name('social_login_callback');

控制器

代码语言:javascript
复制
namespace App\Http\Controllers;

use Laravel\Socialite\Facades\Socialite;
use App\Services\AccountService;
use App\Services\AuthService;

use Exception;

class LoginSocialController extends Controller
{
    public function redirectToProvider($provider)
    {
        return Socialite::driver($provider)->stateless()->redirect();
    }

    public function handleProviderCallback($provider)
    {
        $providerAccount = Socialite::driver($provider)->stateless()->user();
        dd($providerAccount);
    }
}

services.php

代码语言:javascript
复制
return [   
    'mailgun' => [
        'domain' => env('MAILGUN_DOMAIN'),
        'secret' => env('MAILGUN_SECRET'),
        'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
    ],

    'postmark' => [
        'token' => env('POSTMARK_TOKEN'),
    ],

    'ses' => [
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
    ],

    'facebook' => [
        'client_id' => env('FACEBOOK_CLIENT_ID'),
        'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
        'redirect' => env('FACEBOOK_CALLBACK')
    ],

    'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_CLIENT_SECRET'),
        'redirect' => env('GOOGLE_CALLBACK')
    ],

    'apple' => [
        'client_id' => env('APPLE_CLIENT_ID'),
        'client_secret' => env('APPLE_CLIENT_SECRET'),
        'redirect' => env('APPLE_CALLBACK')
    ],

    'github' => [
        'client_id' => env('GITHUB_CLIENT_ID'),
        'client_secret' => env('GITHUB_CLIENT_SECRET'),
        'redirect' => env('GITHUB_CALLBACK')
    ],

];

我不知道我做错了什么,但它似乎是一些与项目不是网络和使用拉拉只作为后端。有同样问题的人吗?

编辑

当我在dd()上使用Socialite::driver($provider)->stateless()->redirect()时,我得到了如下所示的对象:

https://www.facebook.com/v3.3/dialog/oauth?client_id=123456789&redirect_uri=https%3A%2F%2F%2Fapi%2Faccount%2Ffacebook%2Flogin%2Fcallback&scope=email&response_type=code&state=nesi0U0nBm64Y9jHq1G (编辑)

奇怪的是,我不能只调用端点就得到这个响应。所以我不得不使用dd()

EN

回答 1

Stack Overflow用户

发布于 2021-12-18 04:24:21

你的回拨路线

代码语言:javascript
复制
Route::get('account/{provider}/login/callback', [LoginSocialController::class, 'handleProviderCallback'])->name('social_login_callback');

必须与以前在Facebook开发者中创建的FB应用程序相同

并检查.env文件中的应用程序机密和应用程序id

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70398035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档