Member Since 1 Year Ago
290 experience to go until the next level!
In case you were wondering, you earn Laracasts experience when you:
Earned once you have completed your first Laracasts lesson.
Earned once you have earned your first 1000 experience points.
Earned when you have been with Laracasts for 1 year.
Earned when you have been with Laracasts for 2 years.
Earned when you have been with Laracasts for 3 years.
Earned when you have been with Laracasts for 4 years.
Earned when you have been with Laracasts for 5 years.
Earned when at least one Laracasts series has been fully completed.
Earned after your first post on the Laracasts forum.
Earned once 100 Laracasts lessons have been completed.
Earned once you receive your first "Best Reply" award on the Laracasts forum.
Earned if you are a paying Laracasts subscriber.
Earned if you have a lifetime subscription to Laracasts.
Earned if you share a link to Laracasts on social media. Please email [email protected] with your username and post URL to be awarded this badge.
Earned once you have achieved 500 forum replies.
Earned once your experience points passes 100,000.
Earned once your experience points hits 10,000.
Earned once 1000 Laracasts lessons have been completed.
Earned once your "Best Reply" award count is 100 or more.
Earned once your experience points passes 1 million.
Earned once your experience points ranks in the top 50 of all Laracasts users.
Earned once your experience points ranks in the top 10 of all Laracasts users.
I am a few months late to this, but I have built a Vue/Laravel SPA using Passport in Laravel 7 and am now trying to build a Laravel 8 site with a few Vue components throughout (more reactive pages), and ran into the same issue above.
For me, I can't force users to re-authenticate just to access certain pages, so it makes sense for me to change the middleware to "web", to only check for sessions instead of JSON Web Tokens. A full-fledged Vue SPA needs that api middleware to function properly because you will not be able to consistently refresh that session information via API requests.
What I suspect is happening above is a token/session mismatch. Your authentication is returning a session instead of a token and Axios is attaching the session data to each request instead of a token. This may be due to how your api driver is set in your auth.php. Regardless, your axios requests likely do not have an Authorization header- which is what Sanctum needs to authenticate API requests.
Now, Sanctum's docs imply that authenticating by session is still possible via the auth:sanctum middleware, but judging by our experiences here that does not seem to be the case. If there is no token, it fails- either because Axios didn't include it in the request or because Axios never had it returned from the initial login.
Unfortunately I do not have any code recommendations as my fix is what's listed above. However, I believe how you're handling your login suggests that it has been built to deal in sessions rather than tokens, and altering the authentication process to return a token instead should intuitively function as intended.