如何解决“Facebook 检测到 MyApp 未使用安全连接传输信息。” Laravel 中的错误

Posted

技术标签:

【中文标题】如何解决“Facebook 检测到 MyApp 未使用安全连接传输信息。” Laravel 中的错误【英文标题】:How to fix 'Facebook has detected MyApp isn't using a secure connection to transfer information.' error in Laravel 【发布时间】:2019-12-13 19:21:53 【问题描述】:

我正在尝试使用 Laravel 和社交名媛包将我的应用程序连接到 facebook 登录。但我不知道为什么 facebook 会显示此错误。我搜索了互联网,但我找不到任何东西。我该如何解决这个错误?

我认为如果我与 https 建立连接,它将起作用,但在再次建立 https 后会出现错误。

我在 laravel 中的代码:

web.php

Route::get('login/provider', 'SocialController@redirect');
Route::get('login/provider/callback','SocialController@Callback');

SocialController.php

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

    public function Callback($provider)

        $userSocial =   Socialite::driver($provider)->stateless()->user();
        $users       =   User::where(['email' => $userSocial->getEmail()])->first();
        if($users)
            Auth::login($users);
            return redirect('/');
        else$user = User::create([
                'username'          => $userSocial->getName(),
                'email'         => $userSocial->getEmail(),
                'provider_id'   => $userSocial->getId(),
                'provider'      => $provider,
            ]);
            return redirect()->route('home');
        
    

【问题讨论】:

所以“与 https 建立连接”究竟是什么意思 - 只是通过 https:// 访问该站点,还是您对配置进行了其他更改? @misorude,我认为没有,我与 https:// 建立了联系,但 facebook 再次显示错误。也许这个错误意味着不同的东西 那么当您尝试调用登录对话框时,地址栏会显示什么 - redirect_uri 参数的值,实际上是 HTTPS URL 吗? 当我尝试登录 uri 时,facebook.com/v3.0/dialog/… 我认为你是对的,因为在 uri http 中写了 非常感谢。我在 .env 中更改 FACEBOOK_URL 解决了这个错误。但是现在我有新的错误你知道这个i.imgur.com/7OGEQ1A.png的解决方案吗? 【参考方案1】:

您可以执行“创建测试应用”并使用测试应用替换您的 App ID 和 Secret。

【讨论】:

这为我解决了。【参考方案2】:

简单的答案是 - Facebook 会将敏感数据发送到提供的 redirect_uri,因此它通过强制您使用有效的 SSL 来确保此连接是私密的。

只要您没有使用正确的证书设置有效域,Facebook 就不会让您使用生产 API。

【讨论】:

这个redirect_uri是在哪里定义的?我在 Facebook 控制台中的 App Domains、Site URL、Domains 和 Valid OAuth Redirect URIs 中有一个 https ssl 安全域,但它仍然使用 redirect_uri=http://domain 而不是 https【参考方案3】:

看起来像是过期了。我刚刚创建了另一个 Facebook 应用程序,它可以正常工作。

【讨论】:

【参考方案4】:

您可以使用ngrok 使您的本地主机为https。 下载并运行 ngrok.exe

然后运行命令 ngrok.exe http port。在大多数情况下,它将是 8000。

【讨论】:

通过 ngrok 的安全端点需要付费计划。【参考方案5】:

我使用了 https 服务器,它工作正常

参考this和this

【讨论】:

【参考方案6】:

如果出现角度问题:尝试在安全套接字层 true 模式下为您的应用提供服务,因为 Facebook 正在检测不安全的连接

使用以下命令:

ng serve --ssl true

【讨论】:

以上是关于如何解决“Facebook 检测到 MyApp 未使用安全连接传输信息。” Laravel 中的错误的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Ajax 跨域请求不到的问题

如何解决包冲突问题

如何解决包冲突问题

如何解决ajax跨域问题

MySQL 的 10048问题,如何解决?

如何解决smartgit的冲突问题