محمدرضا فلکی
7 ماه پیش توسط محمدرضا فلکی مطرح شد
3 پاسخ

فرق JWT.Breeze .Jetstream .Sanctum .Auth .Passport چیه

سلام
میخوام با بحث های login , logout , register , authorize , authenticate آشنا بشم.
اسم این پکیج هارو شنیدم ولی نمیدونم چی به چیه و کدوم رو باید یاد بگیرم!؟
یا اینکه اصلا فرق JWT, Breeze , Jetstream , Sanctum , Auth , Passport چیه؟
من شنیدم خود لاراول کلاس Auth داره که کارا رو انجام میده.
خب اگر همچین چیزی هست پس چرا JWT, Breeze , Jetstream , Sanctum , Passport توسعه داده شدن؟


ثبت پرسش جدید
Javad Karimi
تخصص : فول استک
@javadkarimii 7 ماه پیش مطرح شد
3

بحث احراز هویت و مجوز (Authentication و Authorization) در توسعه وب بسیار حیاتی و مهم است. در فریمورک لاراول، بسیاری از راه‌حل‌ها و پکیج‌های مختلفی برای این موضوع وجود دارد. بیایید هر یک از آن‌ها را بررسی کنیم:

  1. Auth: این کلاس یکی از ابزارهای اصلی لاراول است که امکانات احراز هویت را فراهم می‌کند. با استفاده از این کلاس، شما می‌توانید افراد را وارد (login) و خارج (logout) کنید، کاربر جاری را شناسایی کنید و موارد مشابه دیگر.

  2. Passport: این یک پکیج است که توسط خود لاراول توسعه داده شده و برای احراز هویت با استفاده از توکن‌های OAuth2 طراحی شده است. اگر شما قصد دارید یک API را بسازید که از OAuth2 برای احراز هویت استفاده کند، Passport گزینه مناسبی است.

  3. Sanctum: لاراول Sanctum نیز یک پکیج احراز هویت است که برای اپلیکیشن‌های SPA (Single Page Application) و موبایل، احراز هویت را ساده‌تر می‌کند. اگر قصد دارید از لاراول به عنوان بک‌اند و یک فریمورک جاوااسکریپت مانند Vue.js یا React به عنوان فرانت‌اند استفاده کنید، Sanctum گزینه مناسبی است.

  4. Jetstream: این یک پکیج است که به شما کمک می‌کند تا سریع‌تر سیستم‌های مرتبط با کاربر مانند ثبت نام، ورود، تأیید ایمیل و موارد دیگر را ایجاد کنید. این پکیج از تکنولوژی‌هایی مانند Livewire و Inertia.js نیز پشتیبانی می‌کند.

  5. Breeze: Breeze نیز مشابه Jetstream است، اما ساده‌تر و بدون وابستگی به Livewire یا Inertia.js. اگر می‌خواهید یک شروع ساده داشته باشید، Breeze گزینه مناسبی است.

  6. JWT (JSON Web Tokens): JWT یک روش استاندارد برای ایجاد توکن‌های احراز هویت است که می‌تواند برای ایجاد و تأیید توکن‌های احراز هویت در بسیاری از برنامه‌ها استفاده شود. در لاراول، پکیج‌هایی مانند "tymon/jwt-auth" وجود دارد که پشتیبانی از JWT را فراهم می‌کند.

چرا این همه گزینه وجود دارد؟:
هر پکیج یا راه‌حل، نیازها و موارد استفاده خاصی را در نظر می‌گیرد. بسته به نوع برنامه و نیازهای شما، ممکن است یکی از این راه‌حل‌ها بهتر از دیگری برای شما باشد. لاراول سعی دارد گزینه‌های مختلفی را برای توسعه‌دهندگان فراهم کند تا بتوانند بر اساس نیازهای خود، راه‌حل مناسبی را انتخاب کنند.


میکائیل
تخصص : برنامه نویسی سمت سرور و کلاینت
@FullStack 7 ماه پیش آپدیت شد
1

سلام وقت بخیر دوست عزیز
ببینید درسته ممکنه الان فککر کنی خوب همشون مربوط به بحص authentication هستن و برای امنیت هستن چرا انقد زیاده ولی خوب هر کدوم توی یه سری جاها استفاده میشه مثلا بخوای وب سرویس (api) بنویسی حالا برای اندروید وب اپلیکیشن ها وب سایت ها و هرچیزی که میتونه به وبسرویس درخواست بزنه خوب وقتی این ها درخواست میزنن مطمعنا یه سری اطلاعات میدن و یک سری اطلاعات میگیرن درسته؟ خوب اما یه سری اطلاعات هست که خیلی حساسه و نباید هرکسی بتونه بهشون درخواست بزنه چون اگه اینجوری باشه هرکسی میتونه مثلا با برنامه postman درخواست بزنه به وب سرویس وب سایت شما و اطلاعات رو دریافت کنه در صورتی که شما میخواین فقط مثلا اپلیکیشن موبایل خودتون بتونه به این وب سرویس درخواست ارسال کنه خوب پس چیککار باید کرد؟ یه سری از این پکیج ها مثل sanctum و passport میان و روت های مارو (مسیر های که بهشون درخواست ارسال میشه و جواب رو بر میگردونن تعریفش به صورت ساده) توی یک گروه قرار میدن که حفاظت میشن توسط یه سری توکن هایی که باید براشون ارسال بشه و اون توکن هارو چک میکنن اگه توی دیتابیس وجود داشتن میان و اجازه میدن که درخواست بزنه در غیر این صورت نمیزارن این توکن ها هم بدست اوردنشون یه جورایی غیر ممکنه چون فقط باید مثلا بعد از ثبت نام به اندروید مثلا این توکن رو بفرستن و اونجا ذخیره کنه و کس دیگه ای بهشون دسترسی نداره توکن ها هم به صورت رندوم ایجاد میشن مثلا 150 کاراکتر رندوم از اعداد حروف و کاراکتر ها ایجاد میکنن برای اینه که از این کپیج ها استفاده میکنیم هر کدوم کارایی خودشون رو دارن مثلا من از سنکتوم استفاده میکنم چون هم توی خود لاراول وجود داره پیش فرض(توی نسخه های پایین تر لاراول باید به صورت پکیج نصب میشد ولی توی نسخه های جدید لاراول اضافه شده) هم کار کردن باهاش خیلی ساده هست و فوق امنیتی هست یعنی تا حد خیلی بالایی امنیت رو برای وب سرویس فراهم میکنه کلا کپیج ها هستن زیاد تو اصلا میتونی همین رو بدون استفاده از پکیج هم پیاده کنی ولی خوب چرخ رو که دوبار اخطراع نمیکنن کلا این همه توضضیح دادم که بگم پکیج هایی که گفتی برای چی استفاده میشن خوب طبیعیه که از هر پکیج چندتا با کارایی مشابه ساخته بشه هر کدوم هم طرفدارای خودشون رو پیدا میکنن و اینکه JWT هم شبیه به همینا هست اما بیشتر توی node js استفاده میشه هم این و هم passport برای node js هست اما زیاد درگیر فرقشون نشو که مثلا اره اون بهتر از اینه همشون امنیت و کارایی خودشونو دارن سععی کن یاد بگیری استفاده کنی و ببینی کدوم راحت تره کار کردن باهاش مثل همین sanctum که توضیح دادم


محمدرضا فلکی
تخصص : Learning Laravel
@m.reza6920 7 ماه پیش مطرح شد
0

خیلی خیلی ممنونم
@1372jk
@FullStack


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام