3 回答
TA贡献1772条经验 获得超6个赞
完整描述如何登录 facebook 和 laravel:
安装新的 laravel
创建数据库并连接
在用户迁移文件中添加 fb_id
运行迁移命令
创建 Laravel 身份验证
作曲家需要 laravel/社交名流
打开 config/app.php,在 providers 和 aliases 数组中注册 socialite 插件
'providers' => [
.........
.........
Laravel\Socialite\SocialiteServiceProvider::class,
],
'aliases' => [
.........
.........
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],
创建 Facebook 应用程序。然后在 config/services.php 中添加 client_id 和 client_secret,如下所示。
应用创建链接:https ://developers.facebook.com/apps
return [
....
'facebook' => [
'client_id' => 'Facebook app id',
'client_secret' => 'Facebook add secret',
'redirect' => 'http://localhost:8000/auth/facebook/callback',
],
]
在 web.php 中创建路由
Route::get('auth/facebook', [SocialController::class, 'facebookRedirect']);
Route::get('auth/facebook/callback', [SocialController::class, 'loginWithFacebook']);
在控制器中
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use Validator;
use Socialite;
use Auth;
class SocialController extends Controller
{
public function facebookRedirect()
{
return Socialite::driver('facebook')->redirect();
}
public function loginWithFacebook(){
$user = Socialite::driver('facebook')->stateless()->user();
$finduser = User::where('fb_id', $user->id)->first();
if($finduser){
Auth::login($finduser);
return redirect('/user-profile');
}else{
$newUser = new User();
$newUser->name = $user->name;
$newUser->email = $user->email;
$newUser->fb_id = $user->id;
$newUser->password = bcrypt('12345678');
$newUser->save();
Auth::login($newUser);
return redirect('/user-profile');
}
}
}
在登录页面添加facebook登录按钮
<a class="btn" href="{{ url('auth/facebook') }}">Login with Facebook</a>
启动 php artisan serve 并测试
视频说明: https ://youtu.be/AaFxO2l0N8k
TA贡献1856条经验 获得超5个赞
您缺少将用户与其社交 ID 链接起来的关键部分。
这是一个很棒的教程:https ://medium.com/@confidenceiyke/laravel-5-8-facebook-socialite-authentication-8863b9a43f11
该教程还将指导您设置 Facebook 应用程序。
TA贡献1982条经验 获得超2个赞
我自己弄明白了。我正在使用 Laravel 版本 6。
您只需要进行以下 3 项更改:
改变
FACEBOOK_REDIRECT=http://localhost:8000/callback
到
FACEBOOK_REDIRECT=http://localhost:8000/facebook/callback
然后改变,
Route::get('/redirect', 'SocialAuthFacebookController@redirect'); Route::get('/callback', 'SocialAuthFacebookController@callback');
到
Route::get('/facebook/redirect', 'SocialAuthFacebookController@redirect'); Route::get('/facebook/callback', 'SocialAuthFacebookController@callback');
最后在登录视图更改
<a href="{{url('/redirect')}}" class="btn btn-primary">Login with Facebook</a>
到
<a href="{{url('/facebook/redirect')}}" class="btn btn-primary">Login with Facebook</a>
参考链接:https ://desertebs.com/laravel/laravel-facebook-login-tutorial
- 3 回答
- 0 关注
- 103 浏览
添加回答
举报