#laravel #authentication
#laravel #аутентификация
Вопрос:
Можно ли войти в систему пользователя в Laravel 7, не имея пользователя в базе данных? У меня есть группа пользователей, которые я не хочу, чтобы они были в моей базе данных, потому что они используют внешний API для входа в систему, и я могу получить их данные из этого API (через XML).
Существует 3 типа пользователей:
- Пользователи AR-подразделения. Обычные зарегистрированные пользователи.
- Пользователи, не относящиеся к подразделению AR, но $user-> gca = 1. Зарегистрированные пользователи тоже.
- Пользователи, не являющиеся подразделением AR и не являющиеся пользователями GCA. Незарегистрированные пользователи.
Все они используют внешний API для входа в систему. Тем не менее, я регистрирую только первые 2 в своей базе данных для организационных целей.
Я намерен использовать Laravel login, используя данные пользователя 3-го типа из API, не касаясь моей базы данных.
Мой код на LoginController.php
$user_array = json_decode(file_get_contents($this->api_url . '?type=jsonamp;token=' . $request->cookie($this->cookie_name)));
if ($user_array->result)
{
$u = NULL;
if ($user = User::find($user_array->vid)) $u = $user;
else if($user_array->division == 'AR' || !is_null(Gca::find($user_array->vid)))
{
$u = new User();
if(! is_null(Gca::find($user_array->vid))) $u->gca = 1;
$u->name = $user_array->firstname;
$u->vid = $user_array->vid;
$vid = $u->vid;
$u->save();
return view('register', compact('vid'));
}
else
{
$user = new User();
$user->division = $user_array->division;
$user->vid = $user_array->vid;
$user->name = $user_array->firstname;
$user->surname = $user_array->lastname;
Auth::login($user); //This doesn't seem to work.
return redirect('/');
}
}
Спасибо.
Комментарии:
1. поставщик пользователей по умолчанию использует базу данных и ожидает, что учетные данные для входа пользователя. я думаю, вы можете создать пользовательского поставщика пользователей: laravel.com/docs/8.x /…
2. Не могли бы вы предоставить более актуальную информацию? например
route
?3. Я отредактировал свой пост. Маршруты не имеют значения, поскольку они не используют аутентификацию напрямую.
4. Спасибо @Rabah! Вы были правы. пришлось создать пользовательского поставщика и пользовательскую защиту.