آموزش احراز هویت با JWT (جیسون وب توکن) Express-Nuxt-Mongo

دیدین تا حالا مثال هایی که بعضی از معلم ها سرِ کلاس حل می‌کنند، با سوالاتی که سرِ امتحان واسمون طرح می‌کنند، چقدر تفاوت داره :)تا الان بیشتر دوره های آموزشی که داخل سایتم منتشر کردم، شبیه مثال های سرِ کلاس بوده...یادگرفتنش مفیده اما برای ورود به بازار کار، هنوز یه سری نکاتی کم دارن... همون نکاتی که بهشون می‌گن فوت استادی...آموزش های پروژه محور، هم زمان زیادی می‌برن و هم برای کسی که درس می‌ده، چالش های زیادی داره... مثلا فرض کنید فیلم یک جلسه رو ضبط کردیم و بعد از خداحافظی، یادمون می‌یاد یک موضوع مهم رو نگفتیم :)باز باید کلی فیلم رو ویرایش کنیم تا اون تیکه، جاساز بشه :)یا مثلا جایی که من دارم ضبط می‌کنم، گاهی وقات موتوری ها رفت و آمد دارند، بعد من از دور که صداشون رو می‌شنوم می‌زنم Stop ... بعدش که طرف می‌یاد و می‌ره، یادم رفته چی می‌خواستم بگم :))))) خیلی باحاله...اما با این همه داستان هایی که هست، باز هم می‌ارزه و حس خوبی دارم از اینکه نکات برنامه نویسی رو دارم به بقیه آموزش می‌دم. یک نفر هم که اینارو یاد بگیره و انشالله یک منبع درامد حلالی رو برای خودش رقم بزنه، خدارو بی نهایت شکر می‌کنم.چیزی که در نهایت تصمیم گرفتم، آموزش یک پروژه ی فول استکی بود تا بتونم خیلی از موارد برنامه نویسی رو پوشش بدم.توی این دوره، ما هم سمت فرانت اند رو پوشش میدیم و هم سمت بک اند... پروژه ای که قراره با یک توکن، کاربر رو تشخیص بده و اون رو احراز هویت کنه.احراز هویت با JWTیعنی از همون ابتدا، 2 تا پروژه ایجاد می‌کنیم.یک پوشه به نام back و یک پوشه به نام front ... و کدهای هر بخش رو در پوشه ی مربوط به خودش قرار می‌دیم.یه چیز خیلی باحال هم اینکه در انتهای کار، سورس کد رو در اختیارتون قرار می‌دم تا تمام دوستانی که دوره را تهیه می‌کنند، بتونن کدهای برنامه رو تغییر داده و خودشون دست به کد بشن.دوره آموزش پروژه محور احراز هویت با JWTالان هم تا جلسه ی 15 ام از این آموزش، تولید شده و در سایت قرار داده شده است.دموی پروژه رو هم از این لینک می‌تونید مشاهده بفرمایید.آموزش احراز هویت با JWT (جیسون وب توکن) Express - Nuxt - Mongoترکیب فوق العاده اکسپرس و مونگو در بک اند ویژگیهای برنامه در سمت backend:استفاده از NodeJS به عنوان موتور اجرای کدهای جاوا اسکریپت در سمت سروراستفاده از کتابخانه ExpressJS برای طراحی APIپیاده سازی انواع route های GET , POST , PUTاستفاده از Middleware برای تایید توکن (verify)ایجاد route لاگین جهت ایجاد توکن (sign)ایجاد route لاگین جهت حذف توکن (logout)استفاده از mongoose برای ساخت دیتابیسانجام عملیات CRUDایجاد Schema برای جدول userایندکس گذاری فیلد accountID ، جهت عدم ثبت داده تکراریاستفاده از body-parser جهت دریافت پارامترها از سمت کاربرآشنایی با ارسال و دریافت توکن به صورت GET , POST , authorization headerترکیب فوق العاده ناکست 3 و تیلویند در فرانت اندویژگیهای برنامه در سمت frontend:استفاده از NUXT 3 به جهت بهینه سازی برنامه برای موتورهای جستجو (بچه ها کدهای ویو جی اس در سمت کلاینت اجرا می‌شن و این برای موتورهای جستجو ایده آل نیست. برای همین ما از ناکست، استفاده کردیم تا کدهامون سمت سرور ران بشن و در نتیجه بتونید مانور خوبی روی سئو داشته باشید)استفاده از Option API به جهت آشنایی با VueJS 2مهاجرت به Composition API به جهت آشنایی با VueJS 3نصب و استفاده از فریم ورک تیلویند (tailwindcss) (این فریم ورک، خودش یک دوره ی جداگانه داره اما توی این دوره هم تا حدی توضیح دادیم در مورد تیلویند و با بررسی کدهای برنامه، می‌تونید بفهمید داستانش چیه)ایجاد یک قالب ریسپانسیو برای سایتنحوه تعریف کلاس های کاستوم در tailwindcssپوشه بندی برنامه و انتقال پوشه های کلیدی در زیرمجموعه srcاستفاده از Composablesاستفاده از Pagesاستفاده از Componentsاستفاده از Pluginsاستفاده Layoutsاستفاده از mixinsذخیره و بازیابی توکن در LocalStorageاستفاده از env. برای مقدار دهی به متغیرهای runtimeنمایش کامپوننت ها در مودال (بسیار کاربردی)استفاده از فونت زیبای وزیربرای دیتابیس هم همونطور که گفتم از دیتابیس فوق العاده پرقدرت MongoDB استفاده می‌کنم. البته آموزش مونگو یک خیلی مفصل تر از این حرفهاست و من در این پروژه فقط در حد نیاز توضیحاتی رو خدمتتون ارائه دادم.برای آشنایی بیشتر با این دیتابیس، می‌تونید از این 2 دوره بهره بگیرید:آموزش مقدماتی دوره MongoDBآموزش پیشرفته دوره MongoDBهمچنین توی این دوره، از ادیتور VSCode استفاده کردیم که یک دوره ی رایگان vscode هم گذاشتیم که از بعد از ثبت نام، می‌تونید دانلود کنید.لینک سایر دوره ها رو هم چه در حوزه فرانت و چه در بخش بک، اینجا آوردم:دوره های آموزشی فرانت انددوره های بک انددوره های دیتابیسدوره های پروژه محور