【发布时间】:2018-06-15 10:46:09
【问题描述】:
我正在使用Laravel 5.6 + Socialite 来实现使用Facebook 的登录流程。我也在使用cloud9 来帮助我开发它。
我关注了many tutorials,但是当我尝试通过我的开发环境登录时,this red message 仍然出现:
无法加载 URL:此 URL 的域未包含在应用的 域。为了能够加载此 URL,请添加所有域和子域 将您的应用添加到应用设置中的“应用域”字段。
有些东西不见了。这似乎是 Facebook 设置问题,我认为我的 Cloud9 URL 可能是导致它的原因。可能 C9 URL 被列入黑名单,但我在这里或其他地方没有找到任何官方确认。
这是我当前的“Facebook For Developers”设置:
- 设置 > 基本 > 应用域:myapp-myusername.c9users.io/
- 设置>基本>网站:http://myapp-myusername.c9users.io/
- 设置 > 高级 > 域管理器列表:http://myapp-myusername.c9users.io/ 和 http://myapp-myusername.c9users.io:8080/
- 设置 > 高级 > 共享重定向白名单:允许跨域共享重定向标记为“是”
我的控制器(app/Http/Controllers/SocialAuthFacebookController.php):
<?php
namespace Zyga\Http\Controllers;
use Socialite;
class SocialAuthFacebookController extends Controller
{
public function handleProviderCallback()
{
return Socialite::driver('facebook')->user();
}
public function redirectToProvider()
{
return Socialite::driver('facebook')->redirect();
}
}
配置/services.php:
'facebook' => [
'client_id' => 'blablabla1',
'client_secret' => 'blablabla2',
'redirect' => 'https://myapp-myusername.c9users.io/login/facebook/callback',
],
路由(web.php):
Route::get('login/facebook', 'SocialAuthFacebookController@redirectToProvider');
Route::get('login/facebook/callback', 'SocialAuthFacebookController@handleProviderCallback');
添加别名和提供者 config/app.php:
'providers' => [
// ...
Laravel\Socialite\SocialiteServiceProvider::class,
],
'aliases' => [
// ...
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],
还有我的登录按钮:
<a href="{{url('/login/facebook')}}">Login with Facebook</a>
编辑
在我保存http://myapp-myusername.c9users.io/ 后,它显示为没有“http”。
有什么建议吗?我应该检查其他东西吗?我知道我们可以在这里找到其他类似的问题,但它们似乎已经过时了,因为 Facebook 开发仪表板现在提供了不同的设置。
【问题讨论】:
-
myapp-myusername.c9users.io/不是主机名,因此它甚至不应该让您将其保存在“应用程序域”字段中。请检查该字段是否确实包含您认为的内容。 -
@CBroe 当然。如果您指的是我提到的第一个域,请注意我上面添加的内容。
-
@CBroe 关于如何添加此域有什么建议吗?
标签: php laravel facebook cloud9-ide