If your SPA is on the same domain as laravel, you can use Sanctum's SPA Authentication.
If it's on a different domain, you can still use Sanctum, but you must check out Sanctum's API Token Authentication.
As of today, if you are creating an SPA -either same or different domain-, I suggest you use Sanctum because it's lightweight and is designed specifically for this use-case. Passport isn't intended to be used for SPA Authentication and thus is not the best fit. Sanctum, token and JWT options are all pretty similar, but sanctum is newer, more robust, and easier to implement in my opinion
Usage
When you sign in a user, create a token for the user and return the plainTextToken.
public function login() {
// Check credentials
return $user->createToken('browser')->plainTextToken;
}
You can save that locally and then simply use it in your Authentication header:
"headers": {
"Authentication": "Bearer {TOKEN}"
}