Если имитатор и олицетворяющие пользователи имеют одно и то же пароль, он работает на 100%, и я могу обновлять страницу сколько угодно раз. Если это не так и у них разные пароли, как обычно, когда вы выдаете себя за пользователя, панель загружается, но при последующих обновлениях вы перейдете на экран входа в систему.Все, что я делал, я записал здесь: https://github.com/thorst/laravel-jetst ... /README.md
Это будет помочь пользователям в будущем, как только я заставить его работать, так как это популярная тема.
В общем, вот мой олицетворяющий контроллер:
Код: Выделить всё
public function start(Request $request, $userId)
{
// Ensure the current user has permission to impersonate
if (!Auth::user()->canImpersonate()) {
abort(403, 'Unauthorized action.');
}
Session::put('impersonate', $userId);
return redirect()->route('dashboard');
}
public function stop()
{
// Remove impersonation data from the session
session()->forget('impersonate');
return redirect()->route('dashboard');
}
Код: Выделить всё
public function handle(Request $request, Closure $next): Response
{
// Check if impersonation is active
if (Session::has('impersonate')) {
$impersonatedUserId = Session::get('impersonate');
// Find and set the impersonated user
$impersonatedUser = \App\Models\User::find($impersonatedUserId);
if ($impersonatedUser && $impersonatedUser.canBeImpersonated()) {
Auth::setUser($impersonatedUser);
}
}
return $next($request);
}
Код: Выделить всё
session()->put([
'password_hash_sanctum' => $impersonatedUser->getAuthPassword(),
]);
Спасибо,
Подробнее здесь: https://stackoverflow.com/questions/792 ... ne-request
Мобильная версия