Один из способов сделать это; в промежуточном программном обеспечении Authenticate
поместите блок, такой как;
Когда пользователь успешно вошел в систему, поместите значение tenant1
в сеанс пользователя с указанным ключом.
Session::put('domain', 'tenant1');
в том же промежуточном программном обеспечении, даже если аутентификация правильная, проверьте, совпадает ли сеанс пользователя с именем субдомена. если они совпадают, то вы продолжаете пользователя, иначе перенаправить его на страницу входа.
Session::get('domain') === $this->getSubDomain($request)
public function getSubDomain(Request $request): string
{
$urlSegments = explode('.', parse_url($request->url(), PHP_URL_HOST));
return $urlSegments[0]; // this will return "tenant1"
}
Не забудьте удалить domain
из сеанса после того, как пользователь вошел в систему- вне.