برنامه نویسی

چگونه احراز هویت مبتنی بر توکن: یک پیاده روی عملی

احراز هویت برای تأمین برنامه های وب ضروری است. در این مقاله ، احراز هویت مبتنی بر توکن را با استفاده از یک نمونه در دنیای واقعی از سیستم ورود به سیستم ساخته شده با React ، Node.js و MongoDB توضیح خواهم داد. اگر تازه وارد این کار هستید ، نگران نباشید! من شما را قدم به قدم راهنمایی می کنم.

احراز هویت مبتنی بر توکن چگونه کار می کند؟
تصور کنید که وارد یک برنامه هستید. در اینجا آنچه در پشت صحنه اتفاق می افتد آمده است:

  1. شما با وارد کردن ایمیل/تلفن ، نام و رمز عبور خود یک حساب ثبت می کنید.
  2. شما با ارائه ایمیل/تلفن و رمز ورود خود وارد سیستم می شوید.
  3. اگر اعتبار شما صحیح است ، یک نشانه تولید می شود و به دستگاه شما ارسال می شود.
  4. هر بار که به یک صفحه محافظت شده دسترسی پیدا می کنید ، نشانه شما برای تأیید هویت شما بررسی می شود.
  5. اگر توکن معتبر باشد ، می توانید ادامه دهید. اگر اینطور نیست ، از شما خواسته می شود دوباره وارد شوید.

این توکن مانند یک کلید دیجیتال موقت عمل می کند و امکان دسترسی بدون نیاز به ورود مکرر را فراهم می کند.

مرحله 1: ثبت نام کاربر

هنگام ثبت نام ، جزئیاتی مانند ایمیل/تلفن ، نام و رمز عبور خود را ارائه می دهید. رمز عبور شما با استفاده از روشی به نام هشویی در پایگاه داده ایمن است.

  • اگر ایمیل یا شماره تلفن شما از قبل ثبت شده است ، یک پیام خطا دریافت خواهید کرد.
  • اگر همه چیز صحیح است ، حساب شما ایجاد شده است و می توانید وارد سیستم شوید.

پس از ثبت نام ، می توانید به مرحله ورود به سیستم بروید.

مرحله 2: ورود به سیستم و نسل توکن

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

  1. اعتبار شما به سرور ارسال می شود.
  2. سرور بررسی می کند که آیا ایمیل/تلفن در پایگاه داده وجود دارد یا خیر.
  3. اگر کاربر وجود داشته باشد ، رمز ورود شما را با رمز ذخیره شده مقایسه می کند.
  4. اگر رمز عبور صحیح باشد ، سرور یک توکن JWT تولید می کند و آن را به عقب می فرستد.

کد برای نسل توکن (پس زمینه)

const token = jwt.sign(
  { userId: existingUser._id },
  process.env.JWT_SECRET_KEY!,
  { expiresIn: "15s" } // Token expires in 15 seconds
);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این نشانه شامل شناسه کاربر است و زمان انقضا (15 ثانیه در این مثال ، اما در برنامه های دنیای واقعی ، بسیار طولانی تر است).

پس از دریافت ، این نشانه در مرورگر ذخیره می شود تا کاربر مجبور نباشد بلافاصله وارد سیستم شود.

مرحله 3: دسترسی به یک صفحه محافظت شده

اکنون که وارد سیستم شده اید ، می خواهید به یک صفحه محافظت شده (مانند نمایه یا داشبورد خود) دسترسی پیدا کنید. در اینجا نحوه عملکرد آن آورده شده است:

  1. روی یک دکمه کلیک می کنید (به عنوان مثال ، “مشاهده نمایه”).
  2. مرورگر شما نشانه را به درخواست وصل می کند.
  3. سرور بررسی می کند که آیا توکن معتبر است یا خیر.
  4. اگر توکن معتبر باشد ، سرور امکان دسترسی را فراهم می کند.
  5. اگر توکن از دست رفته ، نامعتبر یا منقضی شده باشد ، سرور دسترسی را انکار می کند و شما را به صفحه ورود هدایت می کند.

کد برای اعتبار سنجی توکن (پس زمینه)

const authMiddleware = (req, res, next) => {
  const token = req.headers.authorization?.split(" ")[1];
  if (!token) {
    return res.status(401).json({ message: "Unauthorized" });
  }
  try {
    const decodedToken = jwt.verify(token, process.env.JWT_SECRET_KEY!);
    req.user = decodedToken.userId;
    next();
  } catch (err) {
    return res.status(401).json({ message: "Unauthorized" });
  }
};
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اگر توکن معتبر است ، می توانید به صفحه دسترسی پیدا کنید. در غیر این صورت ، شما هدایت می شوید تا دوباره وارد شوید.

مرحله 4: چه اتفاقی می افتد که توکن منقضی می شود؟

نشانه ها به دلایل امنیتی موقتی هستند. وقتی یک نشانه منقضی می شود:

  • درخواست بعدی شما با یک خطای 401 (غیرمجاز) رد می شود.
  • برای تأیید مجدد به صفحه ورود به سیستم هدایت می شوید.

این تضمین می کند که فقط کاربران فعال می توانند به داده های محافظت شده دسترسی پیدا کنند.

ویدئو

https://www.youtube.com/watch؟v=qcg7hgt5m8g

لینک های repo

جبهه
پشت

پیچیدن

احراز هویت مبتنی بر Token روشی مدرن و مطمئن برای مدیریت جلسات کاربر در برنامه های وب است. برنامه های کاربردی ایمن تر ، مقیاس پذیر و کارآمدتر می شوند و در ضمن محافظت از داده های حساس ، تجربه کاربری صاف را تضمین می کنند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا