Alireza Taji
Alireza Taji
خواندن ۱ دقیقه·۴ سال پیش

سناریو سیستم احراز هویت (بخش لاگین)

توی قسمت قبلی این سری آموزش در مورد بخش Signup توضیح دادم.

الان می خوام در مورد لاگین صحبت کنم

کاربر ما وارد سایت میشه اکانت خودش رو میسازه و اطلاعاتش توی دیتابیس ثبت میشه
حالا از اپ logout می کنه و می خواد دوباره وارد بشه پس باید login انجام بده

دو حالت پیش میاد :

  • با شماره تماس می خواد وارد اکانتش بشه و نمی خواد رمزش رو وارد کنه (linear login)
  • با شماره تماس یا نام کاربری و رمز عبورش می خواد وارد اکانت بشه
نکته: در هر دو روش باید چک کنیم کاربری با این شماره تماس یا نام کاربری توی دیتابیس وجود داره اگر نداشت اجازه ورود نداره

Linear login (یا Passwordless login)

اینجا شماره تماس کاربر رو می گیریم از طریق سامانه sms براش یک کد تایید می فرستیم و اون کد رو توی ردیس ذخیره می کنیم

یه روت جدید میسازیم برای تایید کد به نام verify
اونجا شماره تماس و کد تایید رو از کاربر می گیریم و چک می کنیم آیا این کد برای همین شماره تماس فرستاده شده یا نه؟

اگر درست بود یه توکن JWT به کاربر میدیم

Password Login

شماره تماس و پسورد کاربر رو می گیریم
اول از دیتابیس کاربری که این شماره تماس داره رو می گیریم
بعدش میریم که ببینیم پسورد کاربر درسته یا نه؟

اینجا با یه جالش رو به رو میشیم

وقتی پسورد رو hash کردیم و داخل دیتابیس ذخیره کردیم، چجوری مقایسه کنیم با پسورد اصلی که کاربر داده؟
الان نوبت متد compare میشه که میاد چک می کنه آیا این پسورد نسخه هش شده این پسورد هست؟ (روشی که این کار رو انجام میده رو توی یه پست دیگه توضیح میدم)

اگر پسورد درست بود یه توکن JWT به کاربر میدیم


در بخش های بعد authentication , authorization هم توضیح میدم ممنون که مطالعه کردید :)

برنامه نویسیbackendjavascriptnode jsامنیت
backend developer | telegram : @ali256reza
شاید از این پست‌ها خوشتان بیاید