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('/'); 
} 

Но, я тогда понимаю, кто-нибудь может войти в систему только с имя_пользователя со встроенной авторизации, нормальной форме входа в систему, если не требуется никаких паролей валидация, так как мы выигрыш магазина facebook пароль в нашей базе данных приложения , и в этом случае пароль будет NULL.

Я думаю об удалении сведений о пользователе после выхода пользователя из системы.

public function logout() 
{ 
    User::find(Auth::user()->id)->delete(); 
    Auth::logout(); 
    return redirect('/')->with('message','logged out!'); 
} 

Это не так хорошо. Каков правильный или лучший способ сделать общественно аутентифицированный пользователь Auth?

ответ

1

Это означает, что вы не понимаете жизненный цикл апи тщательно. Перенаправить пользователя на страницу facebook, чтобы они могли принять ваше приложение и войти в систему. После того, как facebook предоставит информацию о пользователе и сохранит их fb_id, электронную почту, телефон и т. Д., Создайте их. В следующий раз, когда они войдут в систему, убедитесь, что fb_id соответствует возврату из входа пользователя. Поэтому удаление пользователя после регистрации не имеет смысла.

+0

не может войти ни в один логин с помощью имени пользователя из встроенного входа, если не требуется проверка пароля, так как мы не храним пароль от facebook до 'user' model? –

+0

Да, мы заходим с идентификатора facebook, так как facebook предоставляет только идентификатор после входа в систему, поэтому мы можем быть уверены, что идентификатор, который мы создаем, принадлежит зарегистрированному пользователю, поэтому вам не понадобится passwor, поэтому вы создаете социальный авторизационный вход, не так ли? если это потребует пароль для каждого входа в систему, почему использовать социальный аут, это будет бесполезно na? –

+0

Я имею в виду после аутентификации из facebook мы храним имя, имя, имя пользователя, но не пароль в модели 'User'. то не мог ли кто-нибудь войти только с именем пользователя из встроенного входа не из facebook? –

Смежные вопросы