3 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
完整描述如何登錄 facebook 和 laravel:
安裝新的 laravel
創(chuàng)建數(shù)據(jù)庫并連接
在用戶遷移文件中添加 fb_id
運(yùn)行遷移命令
創(chuàng)建 Laravel 身份驗(yàn)證
作曲家需要 laravel/社交名流
打開 config/app.php,在 providers 和 aliases 數(shù)組中注冊(cè) socialite 插件
'providers' => [
.........
.........
Laravel\Socialite\SocialiteServiceProvider::class,
],
'aliases' => [
.........
.........
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],
創(chuàng)建 Facebook 應(yīng)用程序。然后在 config/services.php 中添加 client_id 和 client_secret,如下所示。
應(yīng)用創(chuàng)建鏈接: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 中創(chuàng)建路由
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>
啟動(dòng) php artisan serve 并測(cè)試
視頻說明: https ://youtu.be/AaFxO2l0N8k

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
您缺少將用戶與其社交 ID 鏈接起來的關(guān)鍵部分。
這是一個(gè)很棒的教程:https ://medium.com/@confidenceiyke/laravel-5-8-facebook-socialite-authentication-8863b9a43f11
該教程還將指導(dǎo)您設(shè)置 Facebook 應(yīng)用程序。

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
我自己弄明白了。我正在使用 Laravel 版本 6。
您只需要進(jìn)行以下 3 項(xiàng)更改:
改變
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 關(guān)注
- 127 瀏覽
添加回答
舉報(bào)