جیسون وب توکن: ثبت نام و ورود با Express.js و MongoDB

7 خرداد 1400

جیسون وب توکن یکی از مباحث امنیتی وبسایت است که میتوان با آن ثبت نام و ورود را انجام داد. اینجا با کمک مقالات سایت bezcoders.com و کدهایش یک سیستم ثبت نام و ورود یا همان register login (signup signin) به فارسی ایجاد کردیم. اگر میخواهید با رمز یکبار مصرف ثبت نام و ورود را انجام دهید مقاله ثبت نام و ورود با رمز یکبار مصرف در Nodejs را بخوانید!

در این مینی پروژه هدف این بود تا json web token آموزش داده شود. اینجا با استفاده از Express.js و MongoDB بک اند را ساختیم. فرانت اند با یکی از view engine های اکسپرس انجام شد که نامش ejs است. میتوانستیم از Ajax هم استفاده کنیم اما این کار را نکردیم تا تمرکز روی JWT باقی بماند.

تصاویر ارتباط بین کدها

جونیور فرانت اند - ejs جیسون وب توکن express.js mongoDB

مراحل گام به گام

پیشنیاز: نصب Nodejs و mongo community

برای نصب هریک کافیست به سایت مربوطه بروید.

گام 1: دانلود ریپوسیتوری

به صفحه گیتهاب جونیور فرانت اند بروید و ریپوسیتوری bez-js را انتخاب کنید!

ان را clone یا دانلود کنید.

گام 2: نصب ماژول ها

پکیج های استفاده شده را با yarn install نصب کنید.

گام 3: راه اندازی سرور

کافیست yarn start را بزنید و به بروزر به ادرس localhost:8080 بروید!

در ادامه ارورهایی که هنگام توسعه دادن کدها به ان برخوردم برایتان به اشتراک میگذارم.

 ارور های قاعده نوشتاری ejs

گاهی ارور های سینتک ejs درست پیام را نمیرساند و گاهی درست پیام را میرساند. 
به همین دلیل اینجا چندتا از دلایل ارور ها را نوشتم تا اگر ارور داد چک شود شاید ارور برطرف شود. 

ارور سینتکس switch

نباید هر خط از <% %> استفاده کرد. 

<% switch(x){ %>
<% case 'hi': %>
<%- include ('partial/home.ejs') %>
<% break; %>
<% case 'hi': %>
<%- include ('partial/home.ejs') %>
<% break; %>
<% } %>

بجایش میتوان از این سینتکس استفاده کرد:

<% switch(x){ 
 case 'hi': %>
<%- include ('partial/home.ejs') %>
<% break; 
 case 'hi': %>
<%- include ('partial/home.ejs') %>
<% break; 
 } %>

ارور سینتکس include

احتمالا اگر ejs با `express –view=ejs` ساخته شود در هنگام include نیازی به پرانتز ندارد. 

<%- include partial/index.ejs %>

اگر ejs با yarn add ejs نصب شود، آنگاه نیاز به پرانتز دارد. 

<%- include ('partial/index.ejs') %>

منابع و ارجاعات

برای ایجاد ریپوسیتوری و کدنویسی پروژه از مقالات چند سایت استفاده شد.

سایت bezcoder مقاله اول

سایت bezcoder مقاله دوم

استک اور فلو درباره x-access-token