عالی! حالا بریم سراغ یکی از محبوبترین روشهای احراز هویت API برای اپلیکیشنهای SPA (مثل Vue.js، React یا حتی موبایل):
✅ Laravel Sanctum برای احراز هویت در SPA
Sanctum بهت اجازه میده بهسادگی توکنهای احراز هویت برای کاربران بسازی، مخصوصاً برای اپلیکیشنهای تکصفحهای (SPA) با کوکیهای امن.
📦 ۱. نصب Laravel Sanctum
سپس:
این دستور جدول personal_access_tokens رو ایجاد میکنه.
🛡 ۲. تنظیم Middleware
در app/Http/Kernel.php، middleware زیر باید در api قرار بگیره:
🔐 ۳. استفاده در مدل User
در User.php:
🚀 ۴. ایجاد Route های Login / Logout / Me
در routes/api.php:
🍪 ۵. ارسال کوکی با Axios (در SPA)
در سمت کلاینت (مثلاً Vue یا React):
⚙ پیکربندی Axios:
🔐 login:
🔒 درخواست امن:
✅ ویژگیهای کلیدی Sanctum برای SPA
| ویژگی | توضیح |
|---|---|
| مبتنی بر کوکی امن (HttpOnly) | امنتر از LocalStorage |
| بدون JWT | سادهتر و سریعتر |
| سازگار با Vue/React | مخصوص SPA طراحی شده |
| پشتیبانی از CSRF | با استفاده از /sanctum/csrf-cookie |
| استفاده با auth:sanctum | به جای auth:api در Middleware |
🧪 پیشنهاد تست
-
از Postman هم میتونی استفاده کنی، ولی برای کوکی باید CSRF رو بگیری (با
GET /sanctum/csrf-cookie) و session ذخیره شه. -
برای تست بهتر، از مرورگر و DevTools استفاده کن (تب Cookies →
XSRF-TOKENوlaravel_sessionباید باشه).
اگه خواستی یه پروژه نمونه Vue.js + Sanctum برات بسازم، یا API کامل لاگین/رجیستر با کشیدن و انتقال توکن و کوکیها، فقط بگو. آمادهم ✌️