gpt4 book ai didi

php - 为什么使用 facebook 登录不起作用? (除了检查 url 之外如何调试这个问题?)

转载 作者:可可西里 更新时间:2023-10-31 23:50:44 25 4
gpt4 key购买 nike

我有下面的代码来登录 Facebook。但它不起作用,它显示:

“Can't Load URL: The domain of this URL isn't
included in the App's domains. To be able to
load this URL, add all domains and subdomains of your app to the
App Domains field in your app settings."

但 URL 已定义。

路线:

Route::get('auth/{provider}', [
'uses' => 'OauthController@redirectToProvider',
'as' => 'social.auth'
]);

Route::get('auth/{provider}/callback', [
'uses' => 'OauthController@handleProviderCallback',
]);

服务.php:

'facebook' => [
'client_id' => '...',
'client_secret' => '...',
'redirect' => 'https://....ngrok.io/auth/facebook/callback'
]

OauthController:

class OauthController extends Controller
{

public function redirectToProvider($provider)
{
return Socialite::driver($provider)->redirect();

}


public function handleProviderCallback($provider)
{
$userFace = Socialite::driver($provider)->user();
// $user->token;

$findUser = User::where('email', $userFace->email)->first();

if($findUser){
Auth::login($findUser);
}else{
$user = new User;
$user->name = $userFace->name;
$user->surname = "";
$user->email = $userFace->email;
$user->password = bcrypt($user->name);
$user->save();
Auth::login($user);
}
}
}

我更改了一些配置,现在出现了不同的错误。用户单击“使用 Facebook 登录”按钮并被重定向到 Facebook 页面,并且需要输入密码。输入密码后,用户被重定向到“https://....ngrok.io/auth/facebook/callback?code=...&state=...#=”,并出现一个页面:

Laravel \ Socialite \ Two \ InvalidStateException
No message

此错误在文件 /socialite/src/Two/AbstractProvider.php 中的“public function user() { if ($this->hasInvalidState()) { throw new InvalidStateException;... "

配置:

Laravel 配置:

In services.php
'redirect' => 'https://....ngrok.io/facebook/auth/callback'

In .env file:
APP_URL=https://....ngrok.io

Facebook 设置:

Client OAuth Login - yes
Web OAuth login - yes
Force Web OAuth Reauthentication - yes
Use Strict Mode for Redirect URIs - yes
Enforce HTTPS - No
Embedded Browser OAuth Login - No

Valid OAuth Redirect URIs: https://....ngrok.io/facebook/auth/callback

Basic settings:
App domains: ....ngrok.io
Site URL: https://....ngrok.io/facebook/callback

如果我使用本地主机,它就可以工作。

使用“'redirect' => 'proj.test/auth/facebook/callback'”;。

在 Facebook 设置中:

网站网址:proj.test/auth/facebook/callback

应用域:proj.test

有效的 OAuth 重定向 URI proj.test/auth/facebook/callback'"

但是它不能正常工作,用户被重定向到“proj.test/auth/facebook/callback?code=......=”;,它被插入到数据库中但是它显示为空白页面,而不是将用户重定向到“proj.test”。

最佳答案

我建议您在您的项目上设置 XDEBUG。然后你就可以在你的项目中放置断点,你就会知道发生了什么。

您可以轻松找到适用于您的环境的 XDEBUG 安装说明。这是一个很好的例子:Installing Xdebug on Homestead 7.0, PHP 7.2

关于php - 为什么使用 facebook 登录不起作用? (除了检查 url 之外如何调试这个问题?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51327548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com