![](/img/trans.png)
[英]laravel Socialite - Facebook doesn't return user's firstname & lastname
[英]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.