Get "PHP 8 in a Nuthshell" (Now with PHP 8.4)
Amit Merchant

Amit Merchant

A blog on PHP, JavaScript, and more

Three ways to impersonate a user in Laravel

There comes a time when you want to log in or authenticate a user in your application manually. For instance, you have a functionality where admins can mimic a user to perform certain actions. Or you may just want to impersonate a user for testing purposes.

There are three ways Laravel lets you do this.

Login using user object

Using the Auth::login() method, you can log in as a user using the user object.

use App\Models\User;
use Illuminate\Support\Facades\Auth;
$user = User::find(1);

// Logs in user with a session cookie
Auth::login($user);

// Logs in user with a permanent cookie
Auth::login($user, true);

Login using User ID

You can also log in as a user with a User ID using the Auth::loginUsingId() method.

use Illuminate\Support\Facades\Auth;

// Logs in user with a session cookie
Auth::loginUsingId(1);

// Logs in user with a permanent cookie
Auth::loginUsingId(1, true);

If you want to log in as a user without a session or cookie, you can use the Auth::onceUsingId() method.

use Illuminate\Support\Facades\Auth;

Auth::onceUsingId(1);
Learn the fundamentals of PHP 8 (including 8.1, 8.2, 8.3, and 8.4), the latest version of PHP, and how to use it today with my new book PHP 8 in a Nutshell. It's a no-fluff and easy-to-digest guide to the latest features and nitty-gritty details of PHP 8. So, if you're looking for a quick and easy way to PHP 8, this is the book for you.

Like this article?

Buy me a coffee

👋 Hi there! I'm Amit. I write articles about all things web development. You can become a sponsor on my blog to help me continue my writing journey and get your brand in front of thousands of eyes.

Comments?