احراز هویت کاربر (User Authentication)
در این فصل، نحوه پیادهسازی احراز هویت کاربر (User Authentication) را بررسی میکنیم. این شامل ثبتنام (Sign Up)، ورود (Login)، خروج (Logout) و مجوزدهی (Authorization) میشود.
در این فصل خواهیم آموخت:
- چگونه مدل کاربر (User Model) را در پایگاه داده ایجاد کنیم.
- نحوه رمزنگاری رمز عبور (Password Encryption) و ذخیرهسازی امن (Secure Storage).
- پیادهسازی فرآیند ثبتنام (Sign Up Process) و ورود کاربر (User Login).
- محافظت در برابر حملات CSRF (CSRF Attacks).
در این بخش از کتاب، قصد داریم به برنامه خود قابلیت احراز هویت کاربر اضافه کنیم، به طوری که تنها کاربران ثبتنام شده و وارد شده بتوانند قطعات جدید ایجاد کنند. کاربران غیر وارد شده همچنان قادر به مشاهده قطعات خواهند بود و همچنین میتوانند برای یک حساب کاربری ثبتنام کنند.
روند کار به این صورت خواهد بود:
یک کاربر با مراجعه به فرمی در
/user/signupو وارد کردن نام، آدرس ایمیل و رمز عبور خود ثبتنام میکند. ما این اطلاعات را در یک جدول جدیدusersدر پایگاه داده ذخیره خواهیم کرد (که در لحظهای ایجاد خواهیم کرد).یک کاربر با مراجعه به فرمی در
/user/loginو وارد کردن آدرس ایمیل و رمز عبور خود وارد میشود.سپس پایگاه داده را بررسی میکنیم تا ببینیم آیا ایمیل و رمز عبوری که وارد کردهاند با یکی از کاربران در جدول
usersمطابقت دارد یا خیر. اگر مطابقتی وجود داشته باشد، کاربر با موفقیت احراز هویت شده و مقدارidمربوط به کاربر را به دادههای جلسه او اضافه میکنیم، با استفاده از کلید"authenticatedUserID".هنگامی که هر درخواست بعدی را دریافت میکنیم، میتوانیم دادههای جلسه کاربر را برای مقدار
"authenticatedUserID"بررسی کنیم. اگر وجود داشته باشد، میدانیم که کاربر قبلاً با موفقیت وارد شده است. میتوانیم این کار را تا زمانی که جلسه منقضی شود ادامه دهیم، زمانی که کاربر باید دوباره وارد شود. اگر"authenticatedUserID"در جلسه وجود نداشته باشد، میدانیم که کاربر وارد نشده است.
در بسیاری از موارد، بسیاری از محتوای این بخش فقط به شیوهای متفاوت چیزهایی را که قبلاً یاد گرفتهایم کنار هم قرار میدهد. بنابراین این یک آزمون خوب برای درک شما و یادآوری برخی از مفاهیم کلیدی است.
شما یاد خواهید گرفت:
- چگونه به صورت پایهای ثبتنام، ورود و خروج کاربران را پیادهسازی کنید.
- یک روش امن برای رمزگذاری و ذخیره رمزهای عبور کاربران در پایگاه داده خود.
- یک روش محکم و ساده برای تأیید اینکه یک کاربر وارد شده است با استفاده از میانافزار و جلسات.
- چگونه از حملات جعل درخواست بینسایتی (CSRF) جلوگیری کنید.
واژهنامه اصطلاحات فنی
| اصطلاح فارسی | معادل انگلیسی | توضیح |
|---|---|---|
| احراز هویت کاربر | User Authentication | فرآیند تأیید هویت کاربران |
| ثبتنام | Sign Up | ایجاد حساب کاربری جدید |
| ورود | Login | دسترسی به حساب کاربری |
| خروج | Logout | پایان دادن به نشست کاربری |
| مجوزدهی | Authorization | کنترل دسترسی کاربران |
| مدل کاربر | User Model | ساختار داده کاربر |
| رمزنگاری رمز عبور | Password Encryption | کدگذاری رمز عبور |
| ذخیرهسازی امن | Secure Storage | نگهداری ایمن اطلاعات |
| فرآیند ثبتنام | Sign Up Process | مراحل ایجاد حساب کاربری |
| حملات CSRF | CSRF Attacks | حملات جعل درخواست بینسایتی |