تصور کنید در حال توسعه یک ابزار کاربردی با هوش مصنوعی هستید. همه چیز خوب پیش می‌رود، خروجی‌ها دقیق هستند و رابط کاربری هم شکل گرفته است. اما ناگهان با یک پرسش اساسی روبرو می‌شوید: «چگونه بفهمم چه کسی از این ابزار استفاده می‌کند؟» یا «چطور اطلاعات هر کاربر را به صورت اختصاصی ذخیره کنم؟». اینجاست که متوجه می‌شوید داشتن یک هسته قدرتمند کافی نیست؛ شما به یک سیستم احراز هویت (Authentication) نیاز دارید.

بسیاری از توسعه‌دهندگان جونیور تصور می‌کنند پیاده‌سازی سیستم لاگین، پروژه‌ای پیچیده است که روزها زمان می‌برد. اما در دنیای وایب کدینگ، ما یاد می‌گیریم که چگونه با همراهی هوش مصنوعی، این مسیر را به شکلی هوشمندانه، سریع و البته اصولی طی کنیم. در ادامه، تجربه واقعیِ اضافه کردن بخش لاگین پیامکی به یک ابزار جستجوی کلمات کلیدی را مرور می‌کنیم تا ببینیم چطور می‌توان قطعات مختلف پازل توسعه را کنار هم چید.

چالش‌های مسیر و سرفصل‌های کلیدی

در این تجربه عملی، موضوعات زیر را از سر گذراندیم تا به یک خروجی پایدار برسیم:

  • طراحی فرآیند احراز هویت: پیاده‌سازی منطق ورود با شماره موبایل و کد تایید (OTP).
  • اتصال به پنل پیامکی: استفاده از سرویس SMS.ir و مدیریت قالب‌های ارسالی.
  • مدیریت پایگاه داده: ساخت جداول کاربران و ذخیره توکن‌های تایید در دیتابیس.
  • یکپارچه‌سازی کدها: جدا کردن فایل‌های منطقی (JS و CSS) برای جلوگیری از گیج شدن هوش مصنوعی در کدهای طولانی.
  • عیب‌یابی (Debug): بررسی لحظه‌ای خطاها و اطمینان از صحت عملکرد دیتابیس پس از ثبت‌نام.

چرا لاگین پیامکی؟

در بازار ایران، شماره موبایل هویت اصلی کاربر است. برخلاف ایمیل که شاید هنوز برای همه اقشار (مثل والدین ما) ملموس نباشد، پیامک ابزاری است که همه با آن راحت هستند. وقتی کاربر شماره خود را وارد می‌کند، سیستم باید دو سناریو را بررسی کند:

  1. کاربر جدید است: پس باید نام و مشخصات او را بگیریم و یک حساب کاربری برایش بسازیم.
  2. کاربر قدیمی است: فقط یک کد تایید برایش ارسال می‌کنیم تا وارد محیط کاربری خود شود.

این فرآیند به ظاهر ساده، نیازمند هماهنگی دقیق بین فرانت‌اند (رابط کاربری) و بک‌اند (منطق برنامه) است. ما از هوش مصنوعی می‌خواهیم که نه تنها کدها را برایمان بنویسد، بلکه راهنمای تغییرات دیتابیس را هم در اختیارمان بگذارد.

وقتی کدها طولانی می‌شوند: هنر مدیریت هوش مصنوعی

یکی از چالش‌های جدی وقتی با مدل‌های زبانی کار می‌کنید، “گیج شدن” آن‌ها در کدهای طولانی است. وقتی حجم کد از ۷۰۰ یا ۸۰۰ خط فراتر می‌رود، احتمال بروز خطا بالا می‌رود. راهکار چیست؟ به جای اینکه بخواهیم تمام بخش‌های سایت (لاگین، دشبورد، جستجو) در یک فایل واحد باشند، آن‌ها را از هم جدا می‌کنیم. این کار مثل این است که قطعات یک ماشین را در قفسه‌های مجزا بگذارید؛ اگر چرخ ماشین پنچر شد، لازم نیست موتور را باز کنید. ما با جدا کردن فایل‌های Login و Dashboard به هوش مصنوعی کمک می‌کنیم تا تمرکز بیشتری روی هر بخش داشته باشد و باگ‌ها را به حداقل برساند.

امنیت و دیتابیس؛ قلب تپنده ابزار شما

برای اینکه سیستم بفهمد چه کسی وارد شده، به یک حافظه نیاز دارد. ما در این پروژه یاد می‌گیریم چطور جداول مخصوص کاربران (Users) و کدهای تایید (OTP) را در دیتابیس ایجاد کنیم. نکته طلایی اینجاست که متغیرهای حساس مثل API Key پنل پیامک را نباید در معرض دید بگذارید. استفاده از بخش Variables یا Secrets در محیط توسعه، به شما اجازه می‌دهد امنیت ابزارتان را حفظ کنید تا کسی نتواند از اعتبار پیامکی شما استفاده کند.

تست نهایی و حس خوبِ خلق کردن

هیچ لذتی بالاتر از این نیست که بعد از کلی کلنجار رفتن با کدها، شماره موبایلتان را بزنید و چند ثانیه بعد، صدای دریافت پیامک را بشنوید. در مرحله تست، ما متوجه می‌شویم که گاهی اضافه کردن یک ویژگی جدید (مثل لاگین)، ممکن است بخش‌های قبلی را با اختلال مواجه کند. اینجاست که مفهوم چک‌پوینت (Checkpoint) اهمیت پیدا می‌کند؛ همیشه قبل از تغییرات بزرگ، یک کپی از نسخه سالم خود داشته باشید.

در نهایت، وقتی می‌بینیم نام کاربر در دیتابیس ثبت شده و ابزار به درستی او را شناسایی می‌کند، یعنی یک قدم بزرگ به سمت حرفه‌ای شدن برداشته‌ایم. این مسیر، تنها درباره کد زدن نیست؛ بلکه درباره “حل مسئله” به کمک هوشمندترین دستیار روی زمین است.

اگر آماده‌اید تا ببینید چطور این قطعات کد در کنار هم یک سیستم زنده را می‌سازند، وقت آن است که آستین‌ها را بالا بزنید و وارد دنیای اجرای واقعی شوید. مسیر یادگیری ما از همین نقطه شروع می‌شود؛ جایی که ایده به کد، و کد به ابزاری در دستان کاربر تبدیل می‌شود.