gpt4 book ai didi

php - OAuthException : redirect_uri isn't an absolute URI. 检查 RFC 3986 (Symfony)

转载 作者:可可西里 更新时间:2023-11-01 12:21:15 26 4
gpt4 key购买 nike

我想在我的网站上添加 facebook 登录选项,关注 this tutorial .我按照教程中的说明进行了所有操作,但仍然出现此错误:

OAuthException: redirect_uri isn't an absolute URI

怎么可能解决呢?

此 url 由 facebookOAuthProvider 生成。该网站不在本地主机上。它在网络服务器上运行,使用 https。

这是相关代码:

    // redirect to Facebook
$facebookOAuthProvider = $this->get('app.facebook_provider');
$url = $facebookOAuthProvider->getAuthorizationUrl([
// these are actually the default scopes
'scopes' => ['public_profile', 'email'],
]);

return $this->redirect($url);

它重定向到这个 url:

https://www.facebook.com/v2.3/dialog/oauth?scopes[0]=public_profile&scopes[1]=email&state=...&scope=public_profile,email&response_type=code&approval_prompt=auto&redirect_uri=/connect/facebook-check&client_id=...

redirect_uri 确实不是绝对 url。但如何修复它呢?


编辑

如果我添加 'redirect_uri' => [$redir] 那么 url 如下所示:

https://www.facebook.com/v2.3/dialog/oauth?scopes%5B0%5D=public_profile&scopes%5B1%5D=email&scopes%5B2%5D=user_location&redirect_uri%5B0%5D=https%3A%2F%2Fexample.com%2Fconnect%2Ffacebook-check&state=...&scope=public_profile%2Cemail&response_type=code&approval_prompt=auto&client_id=...

我可以在生成的 url 中看到绝对 redirect_uri,但如果我导航到它,我仍然会收到此错误

Redir 定义为:

$redir = $this->generateUrl('connect_facebook_check', array(), UrlGeneratorInterface::ABSOLUTE_URL);

编辑2

如果我将 [$redir] 替换为 $redir,那么 facebook 会使用代码将我正确重定向到 /connect/facebook-check,但我得到一个 OAuthException: redirect_uri isn't an absolute URI。在此处检查 RFC 3986

最佳答案

我不知道您从哪里获得示例代码,但肯定不是从链接的教程中获得的。

Facebook授权是基于你生成一个FB链接,用户去FB给自己授权,然后FB服务器重定向回给你(连同是否授权)。

FB 不会猜测登录后将用户重定向到哪里。你需要给他一个包含 http(s) 和服务器名称的完整路径(如果我没记错的话,它也与 FB 应用程序中保存的兼容)

附带的教程需要编写一个 Controller ,其中包含 2 个方法(输出和返回)以及配置中的相应条目。

如果您使用 this ,然后查看您是如何配置提供程序的。 redirectUri 中有什么?

关于php - OAuthException : redirect_uri isn't an absolute URI. 检查 RFC 3986 (Symfony),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45325967/

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