添加到「」用戶「表新列:facebook_user_id。每次用戶嘗試通過Facebook登錄時,Facebook都會返回相同的用戶ID。
public function handleProviderCallback($provider)
{
$socialize_user = Socialize::with($provider)->user();
$facebook_user_id = $socialize_user->getId(); // unique facebook user id
$user = User::where('facebook_user_id', $facebook_user_id)->first();
// register (if no user)
if (!$user) {
$user = new User;
$user->facebook_id = $facebook_user_id;
$user->save();
}
// login
Auth::loginUsingId($user->id);
return redirect('/');
}
Laravel名媛是如何工作的?
public function redirectToProvider()
{
// 1. with this method you redirect user to facebook, twitter... to get permission to use user data
return Socialize::with('github')->redirect();
}
public function handleProviderCallback()
{
// 2. facebook, twitter... redirects user here, where you write code to log in user
$user = Socialize::with('github')->user();
}
這取決於你想如何認證用戶。如果您需要用戶僅通過facebook電子郵件授予登錄權限,則您需要提供密碼並將其與用戶一起保存。如果您不要求輸入密碼,只保存令牌和fb id,然後您可以使用該令牌在用戶第二次登錄時將用戶引導至配置文件。您需要將標記保存在您的handleProviderCallback函數中。 – astroanu 2015-02-12 06:40:35