0
我將社交認證的用戶詳細信息存儲到User
(可認證)模型,並登錄該用戶。這樣我就可以使用Auth
的功能。使用laravel進行社交認證的用戶Auth
回調函數:
public function callback()
{
$user = Socialite::driver('facebook')->user();
$newUser=new User();
$newUser->name=$user->name;
$newUser->email=$user->email;
$newUser->remember_token=$user->token;
$newUser->save();
Auth::login($newUser, true);
return redirect('/');
}
但我隨後發現任何人,因爲我們在我們的應用程序數據庫DONOT商店的Facebook密碼可以只用內置的登錄,正常的登錄表單用戶名登錄,如果不需要密碼驗證。在這種情況下密碼將爲NULL。
我想在用戶註銷後刪除用戶的詳細信息。
public function logout()
{
User::find(Auth::user()->id)->delete();
Auth::logout();
return redirect('/')->with('message','logged out!');
}
這看起來不太好。什麼是使社交認證用戶使用Auth
的正確或更好的方法?
如果不需要任何密碼驗證,就不能使用內置登錄的用戶名登錄,因爲我們不會將facebook的密碼存儲到'user'模型中? –
是的,我們從Facebook的身份證登錄,因爲Facebook只在登錄後提供身份證,所以我們可以肯定,我們正在生成的身份證是從登錄的用戶,所以不需要passwor這就是爲什麼你正在創建社交身份驗證登錄不是嗎?如果它需要密碼爲每個登錄爲什麼使用社交認證它將是無用的吶? –
我的意思是經過Facebook認證後,我們在'User'模型中存儲了fb id,名稱,用戶名,但沒有密碼。那麼不能有任何人登錄只有用戶名內置登錄不是從Facebook? –