我有兩個laravel內置和社會認證。假設如果在使用Facebook的用戶登錄後,我存儲用戶的細節,如fb_id
,username
,email
等方式向用戶表,該表是從真僞內置登錄system.This方式,我可以使用laravel Auth
。利用社會authenticaion細節登錄由內置的登錄系統
$fb_user = Socialite::driver('facebook')->user();
$user = User::firstOrCreate(['fb_id'=>$fb_user->id,'name' => $fb_user->name, 'email' => $fb_user->email]);
Auth::login($user, true);
return redirect('/');
現在,用戶表中有一個用戶名和密碼爲NULL的用戶。如果不需要密碼驗證,任何人都無法使用內置登錄用戶名登錄?或者我的概念在這裏有什麼問題?
我不知道Laravel,但我非常確定在這種情況下,您的應用程序只是獲取令牌facebook說明用戶是否有效。只有Facebook會看到實際的憑據。它被稱爲聯合身份。這是一件好事。你會很高興與很多隨機的,可能不安全的網站存儲您的Facebook的憑據?如果您存儲用戶的憑證,您將如何處理它,以及如何知道他們是否更改了密碼,或該賬戶是否過期? Facebook爲你處理所有這些,你需要的只是他們的「是/否」答案。 – ADyson
希望你哈希密碼。假設允許使用空密碼,它們將散列到非空的地方(例如,'password_hash('',PASSWORD_DEFAULT);'返回類似'$ 2y $ 10 $ MD7HZwh9oki9U74Ta1/7OuDpYK8UXAFEufgMIeNazKSyv1xRabwqu')因此,應該沒有真正的問題你的方法。 –
@ADYSON我不是要求FB給我提供密碼。如果我將他們的ID,電子郵件,名稱留在我的應用程序數據庫的可驗證表中的空白密碼。難道它不能從普通的登錄表單登錄嗎?或者我應該只是不存儲任何fb用戶詳細信息在可驗證的表中? –