شنبه یه خبراییه 🔥 منتظر شنبه باش 😉🥳
۰ ثانیه
۰ دقیقه
۰ ساعت
۹ M
scope variation in js
جامعه پی اچ پی ایجاد شده در ۰۴ بهمن ۱۴۰۱

سلام وقت بخیر.

استاد من یه متغیر تعریف کردم و داخل response بهش مقدار دادم.

الان میخام از اون مقدار داخل یه فرم دیگه استفاده کنم اما نمیشه .

به این صورت.

578e-Capture.PNG

داخل قسمت شماره 2 مقدار دهی شده.

9982-Capture2.PNG

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

سلام دوست عزیز

توی تصویر اول، یه لاگ از loginToken بگیرید تا اطمینان حاصل کنید که مقدار توی متغییر سراسری ذخیره شده باشه.

در ضمن میتونید از localStorage هم برای ذخیره توکن استفاده کنید.

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

صادق برزگر ۰۴ بهمن ۱۴۰۱، ۱۵:۳۳

با localStorage هم تست کردم اما باز نشد

M ۰۵ بهمن ۱۴۰۱، ۰۶:۰۶

لینکش رو براتون قرار میدم.

نحوه کار به این صورته که کاربر بعد از ثبت نام بهش یه login_token اختصاص داده میشه و توی پاسخ response برای ثبت نام اون مقدار رو داخل js مقدار دهی کردم.

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

بعد موقع ورود براش یه OTP ارسال میشه ، الان مشکل اینه که برای ارسال مجدد OTP به اون login_token اختصاصی نیاز دارم اما مقدار دهی نشده که ازش استفاده کنم.

https://github.com/MrMohammad81/OnlineShop

M ۰۵ بهمن ۱۴۰۱، ۰۶:۰۸

محمدحسین جان

کدهاتون رو دیدم، شما اومدید بعد از ثبت نام کاربر رو لاگین میکنید که در این صورت نیازی به login_token نیست.

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

صادق برزگر ۰۵ بهمن ۱۴۰۱، ۱۰:۴۳

الان برای لاگین یه کد OTP برای کاربر ارسال میشه.

تا اینجا مشکلی نیست.

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


و همینطور برای بازیابی رمز عبور هم بهش نیاز دارم تا بتونم کاربر رو پیدا کنم و رمزش رو عوض کنم

M ۰۵ بهمن ۱۴۰۱، ۱۰:۴۶

پاسخ قبلی رو ویرایش کردم دوباره بخونید، ضمن اینکه توی گیت براتون یه پول ریکوئست فرستادم که مشکلتون رو حل کردم. کدها و تغییراتش رو بخونید تا متوجه بشید چطوری مشکل حل شده است.

موفق باشید

صادق برزگر ۰۵ بهمن ۱۴۰۱، ۱۰:۵۲

خیلی ممنون جناب برزگر.

یه سری فیچرهای دیگه مونده بود بهش اضاف کردم و یکم کدارو ریفکتور کردم ، اگه امکانشه بعضی از کدای پروژه رو یه برسی کنید ببینید کدا تمیز هست یا هنوز جای ریفکتور دارن.

ممنون میشم ، لینک رو براتون قرار میدم

https://github.com/MrMohammad81/OnlineShop/tree/dev

M ۰۵ بهمن ۱۴۰۱، ۱۷:۲۱

محمدحسین جان

کدهاتون رو بررسی کردم. بسیار عالی ?

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

یه مسئله ای که توی کدهاتون دیدم اینه که برای چک کردن otp یا ارسال مجدد otp دوتا متد جدا ساختید که بنظرم نیازی به اینکار نیست و با یک متد میشه هندلش کرد، فقط نیازه برای سناریو‌های مختلف پیام‌های متفاوتی رو برای خروجی بفرستید. موردی که گفتم بهش میگن اصل DRY (Don't Repeat Yourself) ، مفهومش اینه که تا جایی که میشه سعی کنید از کدها و کارهای تکراری در کدهاتون جلوگیری کنید.

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

بهترین پاسخ
صادق برزگر ۰۵ بهمن ۱۴۰۱، ۱۸:۲۰

خیلی ممنون از راهنمایی‌های ارزشمندتون ??

M ۰۵ بهمن ۱۴۰۱، ۱۸:۲۷