繁体   English   中英

Laravel 8 社交名流 Facebook 重定向无效/返回 null

[英]Laravel 8 Socialite Facebook redirect didn't work/return null

我有一个使用 Laravel 8 作为后端的应用程序。 我已经有使用名为“accounts”的自定义表的身份验证过程,我想使用一些社交登录过程,从 facebook 开始。 问题是我在编码时遇到了一些问题。 我的 controller 没有正确重定向到 facebook 并返回{"data": null, "error": null} 我搜索了这个问题并且已经更改了代码的某些部分来解决这个问题,但问题仍然存在。 这是我的代码:

我的路线:

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');

我的 controller:

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);
    }
}

我的服务。php:

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')
    ],

];

我不知道我做错了什么,但这似乎与项目不是 web 并且仅使用 laravel 作为后端有关。 有没有人有同样的问题?

TIA

您的回拨路线

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

您的 FB 应用程序必须与您之前在Facebook 开发人员中创建的相同

在此处输入图像描述

并检查.env文件中的 App secret 和 App id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM