我想用facebook登录,我创建了laravel身份验证,我用facebook添加了按钮登录,我用composer命令安装了laravel socialite包,我在config/services中添加了配置:
'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中添加了路由:
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登录”的网址:
<a href="{{ route('login.facebook') }}" class="btn btn-danger btn-block">login with Facebook</a>我将id和变量密钥放在.env文件中:
FACEBOOK_CLIENT_ID="1332763360453031"
FACEBOOK_CLIENT_SECRET="b459fd6252126609a1ad1a5d81161f1d"我在loginController中创建了_registerOrLoginUser函数:
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“。
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。
数据库/表用户迁移:
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页面。在链接中:
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发布于 2021-07-27 02:12:24
您必须启动laravel服务器。使用php artisan serve启动laravel应用程序。
在facebook开发人员帐户和facebook配置文件中查看您的重定向URL。
你应该检查这个问题。Laravel Facebook login
https://stackoverflow.com/questions/68534277
复制相似问题