簡體   English   中英

使用社交身份驗證詳細信息從內置登錄系統登錄

[英]Using social authenticaion details to login from built in login system

我既有內置的laravel也有社交認證。 假設如果用戶使用Facebook登錄,我fb_id用戶詳細信息(例如fb_idusernameemail等)存儲到可從內置登錄系統進行身份驗證的users表中。這樣,我可以使用laravel Auth

$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的用戶。 如果不需要密碼驗證,沒有人只能使用內置登錄名中的用戶名登錄嗎? 或者我的概念有什么問題嗎?

如果不需要密碼驗證,沒有人只能使用內置登錄名中的用戶名登錄嗎?

是的,任何人都可以登錄。

從評論:

解決方案1:

密碼應hashed.Assuming空密碼是允許的,他們會出現亂碼的東西,不為空(例如, password_hash('',PASSWORD_DEFAULT);返回類似$2y$10$MD7HZwh9oki9U74Ta1/7OuDpYK8UXAFEufgMIeNazKSyv1xRabwqu‌​ )因此應該不存在真正的這種方法的問題。

解決方案2:

我們應該有一個字段來將用戶標記為來自單獨的身份驗證源。 這樣,如果有人嘗試使用這些詳細信息直接登錄,則在檢查憑據時可以忽略帶有該標志的行

最近我遇到了同樣的問題。 我建議這樣做:

當用戶選擇社交媒體登錄到您的網站時,使用從身份驗證后從社交媒體網站獲得的信息在您的網站中創建他們的帳戶,然后將其登錄到您的網站。 現在,當他們登錄時,向他們顯示一個彈出窗口以為他們的帳戶設置密碼

現在,可以同時使用內置的Laravel和社交身份驗證進行登錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM