spatie/laravel-passkeys: ورود بدون پسورد در لاراول
خلاصهٔ کاملتر
Passkey یه روش احراز هویته که به جای پسورد از یه جفت کلید رمزنگاری استفاده میکنه — یه کلید عمومی روی سرور ذخیره میشه و یه کلید خصوصی داخل اپ مدیریت پسورد کاربر (مثل 1Password یا Keychain مک). وقتی کاربر میخواد وارد بشه، سرور یه چالش میفرسته، اپ با کلید خصوصی جوابش رو میده، و اگه درست بود، ورود انجام میشه — بدون تایپ کردن ایمیل یا پسورد، بدون ریدایرکت به سرویس ثالث.
پیادهسازی Passkey از نظر فنی کار پیچیدهایه، اما پکیج spatie/laravel-passkeys این پیچیدگی رو پشت دو کامپوننت ساده پنهان کرده. برای اینکه کاربر بتونه Passkey بسازه و مدیریتش کنه، فقط کافیه این کامپوننت Livewire رو به ویوت اضافه کنی:
<livewire:passkeys />برای احراز هویت با Passkey هم یه کامپوننت Blade داری که معمولاً توی صفحهی لاگین قرار میگیره:
<x-authenticate-passkey />ظاهر پیشفرض این کامپوننتها ساده و بیتزئینه تا بتونی راحت استایلشون بدی. خود تیم Spatie این پکیج رو توی Mailcoach استفاده کرده و با UI اون تطبیقش داده.
فعلاً این پکیج فقط از Livewire پشتیبانی میکنه و کامپوننت آمادهای برای Inertia (با Vue یا React) نداره. البته میشه از کلاسهای Action داخلی پکیج توی اپهای Inertia هم استفاده کرد، و تیم Spatie از مشارکت کامیونیتی برای اضافه کردن کامپوننت یا مستندات Inertia استقبال میکنه.
نکات کلیدی:
- Passkey با جفتکلید رمزنگاری کار میکنه؛ کلید خصوصی هرگز سرور رو لمس نمیکنه
- دو کامپوننت آماده: livewire:passkeys برای مدیریت و x-authenticate-passkey برای ورود
- بدون ریدایرکت به سرویس ثالث، بدون تایپ پسورد — فقط یه کلیک
- فعلاً فقط Livewire پشتیبانی میشه؛ Inertia به کمک کامیونیتی نیاز داره
- مستندات کامل روی spatie.be/docs/laravel-passkeys در دسترسه




