首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >身份验证facebook :应用程序ID无效提供的应用程序ID似乎无效

身份验证facebook :应用程序ID无效提供的应用程序ID似乎无效
EN

Stack Overflow用户
提问于 2021-07-27 01:39:17
回答 1查看 56关注 0票数 1

我想用facebook登录,我创建了laravel身份验证,我用facebook添加了按钮登录,我用composer命令安装了laravel socialite包,我在config/services中添加了配置:

代码语言:javascript
复制
'facebook' => [
    'client_id' => env('FACEBOOK_CLIENT_ID'),
    'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
    'redirect' => 'http://localhost:8000/laravel-socialite/public/login/facebook/callback',
    ],

我在routes/web.php中添加了路由:

代码语言:javascript
复制
Route::get ('login/facebook',[App\Http\Controllers\Auth\LoginController::class, 'redirectToFacebook'])->name('login.facebook');
Route::get('login/facebook/callback',[App\Http\Controllers\Auth\LoginController::class,'handleFacebookCallback']);

我输入了“用facebook登录”的网址:

代码语言:javascript
复制
<a href="{{ route('login.facebook') }}" class="btn btn-danger btn-block">login with Facebook</a>

我将id和变量密钥放在.env文件中:

代码语言:javascript
复制
FACEBOOK_CLIENT_ID="1332763360453031"
FACEBOOK_CLIENT_SECRET="b459fd6252126609a1ad1a5d81161f1d"

我在loginController中创建了_registerOrLoginUser函数:

代码语言:javascript
复制
protected function _registerOrLoginUser ($ data)
    {
        $ user = User :: where ('email', '=', $ data-> email) -> first ();
        if (! $ user) {
            $ user = new User ();
            $ user-> name = $ data-> name;
            $ user-> email = $ data-> email;
            $ user-> provider_id = $ data-> provider_id;
            $ user-> avatar = $ data-> avatar;
            $ user-> save ();
        }
        Auth :: login ($ user);
    }

我在LoginController.php中添加了这两个函数,并调用了_registerOrLoginUser函数并重定向到"home“。

代码语言:javascript
复制
public function redirectToFacebook () {
            return Socialite :: driver ('google') -> redirect ();
        }
        public function handleFacebookCallback () {
            $ user = Socialite :: driver ('facebook') -> user ();
            $ this -> _ registerOrLoginUser ($ user);
            return redirect () -> route ('home');
        }

我创建了google应用程序来获取id和sercret。

数据库/表用户迁移:

代码语言:javascript
复制
public function up ()
    {
        Schema :: create ('users', function (Blueprint $ table) {
            $ table-> id ();
            $ table-> string ('name');
            $ table-> string ('email');
            $ table-> timestamp ('email_verified_at') -> nullable ();
            $ table-> string ('password');
            $ table-> string ('provider_id') -> nullable ();
            $ table-> string ('avatar') -> nullable ();
            $ table-> rememberToken ();
            $ table-> timestamps ();
        });
    }

最后,当我用facebook点击登录按钮时,它会打开一个带有invalid app ID消息The application ID provided does not appear to be valid的facebook页面。在链接中:

代码语言:javascript
复制
https://www.facebook.com/v3.3/dialog/oauth?client_id=&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Faswaktin%2Fpublic%2Flogin%2Ffacebook%2Fcallback&scope=email&response_type=code&state=mxWJ2fjpUyAqvhs6o88V3wOJXjkBBZdbU3MCbirY
EN

回答 1

Stack Overflow用户

发布于 2021-07-27 02:12:24

您必须启动laravel服务器。使用php artisan serve启动laravel应用程序。

在facebook开发人员帐户和facebook配置文件中查看您的重定向URL。

你应该检查这个问题。Laravel Facebook login

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68534277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档