Как добиться олицетворения пользователя через TenancyforLaravel?

Я хочу, чтобы мой администратор выдавал себя за моего обычного пользователя. Я использую пакет TenancyforLaravel (https://tenancyforlaravel.com/docs/v3/features/user-impersonation/) с установкой одной базы данных и нескольких поддоменов.

Мой пользователь-администратор хочет выполнить призрачный вход в консоль панели управления арендатора, после чего я хочу выйти из системы как пользователь-арендатор и вернуться к своему профилю роли администратора.

Я не могу добиться олицетворения. Может кто-нибудь, пожалуйста, помогите мне.

ты не можешь выдавать себя за другое лицо, можешь показать нам код? или выдает какую-то ошибку? сделайте route:list проверьте, есть ли маршрут.

francisco 17.06.2024 09:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
1
132
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете сделать следующее: Auth::login(User::find(1)); или Auth::loginUsingId(1); на пути к аутентификации этого пользователя проверьте документацию laravel.

Или вы можете использовать такие библиотеки laravel-имитировать чтобы достичь того, чего вы ожидаете, с помощью большего (промежуточное программное обеспечение, блейды, конфигурации и т. д.). Это доступно до laravel 11.

Однако это просто обычная аутентификация, но ОП спрашивает об олицетворении, которое представляет собой нечто большее, чем просто аутентификация: оно подразумевает (или даже требует), что присутствуют дополнительные утверждения субъектов, которые позволяют пользователю вернуться к своей исходной идентичности сеанса.

Dai 12.06.2024 03:09

@Дай, отредактировал мой ответ. Библиотека, которая позволяет олицетворенному пользователю вернуться к исходному сеансу. Надеюсь, поможет.

francisco 12.06.2024 10:28

Спасибо, что поделились ответом. Но я также использую другую библиотеку для достижения мультитенантности. В этой библиотеке есть концепция олицетворения пользователя, мне нужна помощь по этому поводу.

Siddharth Jain 13.06.2024 04:26

@SiddharthJain добавьте к вопросу эту библиотеку, чтобы дать больше шагов

francisco 13.06.2024 09:39

@francisco TenancyforLaravel — это имя пакета.

Siddharth Jain 13.06.2024 11:34

APP_KEY должен быть одинаковым в .env для всех установок, затем выполните следующие действия.

use Illuminate\Support\Facades\Auth;

Auth::login($user);

или

Auth::loginUsingId(1);

изучите следующие ссылки для получения подробного руководства

https://laravel.com/docs/11.x/authentication#authenticate-a-user-instancehttps://laravel.com/docs/11.x/authentication#authenticate-a-user-by-id

Ответ принят как подходящий

Ниже приведен код для входа в систему для призраков. Здесь «/home» можно заменить на ваш маршрут, по которому вы хотите, чтобы ваш пользователь попал после олицетворения, но только относительное значение.

$user = User::find($id);
$tenant = $user->tenant;
$token = tenancy()->impersonate($tenant, $id, '/home');
$domain = $user->tenant_domain->domain;
$url = "http://$domain/impersonate/{$token->token}";
return redirect()->away($url);

Это даст нам временный URL-адрес входа для выполнения олицетворения.

Другие вопросы по теме