通过 facebook 登录 Laravel 名流会导致抱歉,出了点问题

问题描述 投票:0回答:5

我有一个使用 facebook 登录的 laravel 项目。但经过几天的测试,当我去路线时,它说

Sorry, something went wrong.
。我没有触摸或修改我的代码以及我的 Facebook 开发者帐户中的应用程序。有人可以告诉我发生了什么事吗?

这是我的控制器

    public function redirectToProvider(){
        $facebookScope = [
            'pages_manage_posts',
            'pages_read_engagement',
            'instagram_basic',
            'pages_show_list',
            'manage_pages',
            'publish_to_groups',
            'groups_access_member_info',
        ];
        return Socialite::driver('facebook')->scopes($facebookScope)->redirect();
    }

    public function facebook(){
        try {
            $user = Socialite::driver('facebook')->stateless()->user();
            // dd($user);
            // $this->getPages($user);
            $this->getGroups($user);
            } catch (\Exception $e) {
                return response()->json($e);
        }
    }

路线

Route::get('/fb','FacebookController@redirectToProvider');
Route::get('/facebookAuth','FacebookController@facebook');

我的 Facebook 应用程序 oauth 设置

结果是什么样的

Laravel 版本:

6.2

社交名流版本:

^4.4

更新:如果我删除所有范围,我可以成功登录并获取凭据和令牌。但为什么示波器不起作用?

php laravel facebook facebook-php-sdk laravel-socialite
5个回答
2
投票

此错误没有具体说明出了什么问题,因此很难解决,但您可以检查日志以获取详细的错误报告,它肯定会对您有所帮助。日志位于存储目录中。如果你想让 Laravel 显示完整的错误而不是神秘的“哎呀”消息,请确保你的

.env
APP_ENV=local
在那里并且你的
APP_DEBUG=true
或者你可以在你的
config/app.php
中调整它,比如

'env' => env('APP_ENV', 'local'),
'debug' => env('APP_DEBUG', true),

1
投票

'debug' => env('APP_DEBUG', true),

并运行

php artisan config:cache 
命令


0
投票

实际上您位于生产服务器上,这就是错误没有显示在那里的原因。 尝试更改

APP_DEBUG=true
文件中的环境变量
.env
并检查确切的错误。这可能是由于您正在使用的 Socialite 软件包所致。


0
投票

实际上,您只需检查 URL 中的请求参数即可解决此问题,在scope=email%2Cpages_read_engagement%2C ETC 中, 只需删除电子邮件%2C,奇迹就会发生。 因为我们不是请求电子邮件,而是请求其他权限,该权限可能位于 URL 中,但不是电子邮件中。 谢谢


0
投票

刚刚发布了另一个问题的答案,其中我的问题归结为 Facebook 应用程序设置中的非活动“电子邮件”用例权限。

将其发布在这里,以防它对某人有帮助: https://stackoverflow.com/a/76768660/3102301

© www.soinside.com 2019 - 2024. All rights reserved.