Я сохраняю данные пользователя о социальной аутентификации до модели 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
?
не может войти ни в один логин с помощью имени пользователя из встроенного входа, если не требуется проверка пароля, так как мы не храним пароль от facebook до 'user' model? –
Да, мы заходим с идентификатора facebook, так как facebook предоставляет только идентификатор после входа в систему, поэтому мы можем быть уверены, что идентификатор, который мы создаем, принадлежит зарегистрированному пользователю, поэтому вам не понадобится passwor, поэтому вы создаете социальный авторизационный вход, не так ли? если это потребует пароль для каждого входа в систему, почему использовать социальный аут, это будет бесполезно na? –
Я имею в виду после аутентификации из facebook мы храним имя, имя, имя пользователя, но не пароль в модели 'User'. то не мог ли кто-нибудь войти только с именем пользователя из встроенного входа не из facebook? –