شمارنده درخواست های کاربر

- 3 ماه پیش
توسط arazsalmasi آپدیت شد
حامد ازادی ( 970 تجربه )
3 ماه پیش

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

vahid Mohammadi ( 29456 تجربه )
3 ماه پیش

@hamedbaftam

سلام مجدد :)
در راستای سوال قبلیتون در مورد ولیدیشن یه تغییر کوچیک بدید این مشکلتون رو هم حل می کنه

 'mobile' => 'required|regex:/(0)[0-9]{10}/|digits:11|unique:users'

اون unique میاد و در جدول users نگاه می کنه که این شماره موبایل قبلا ثبت نام نکرده باشه و کد تایید رو گرفته یکبار.
حالا اگر فراموش کرده می تونه بره و درخواست ارسال مجدد کد رو بزنه. حالا باز اگر می خواین که اون کار رو تکرار نکنه می تونید Throttle رو برای پسورد ریست تنظیم کنید.
مثل مثال زیر :

https://alfrednutile.info/posts/194
حامد ازادی ( 970 تجربه )
3 ماه پیش

@viva.mohammadi
فکر کنم منظور منو متوجه نشدید منظورم اینه یه کاربر بخاد هی ازیت کنه ودرخاست کد کنه و هی sms بره هزینه الکی نشه

vahid Mohammadi ( 29456 تجربه )
3 ماه پیش

@hamedbaftam
ببینیداگر منظورتون از درخواست کد ارسال پسورد هست شما که نمی تونید پسورد رو از دیتابیس بخونید و براش ارسال کنید چون کد شده هست مجبورید ریست کنید وقتی پسورد رو ریست می کنید  فیلد updated_atبه تاریخ روز آپدیت میشه حالا شما یک فیلد دارید که داره به شما نشون میده مثلا امروز این رکورد آپدیت شده می تونید با مقایسه این فیلد بفهمید که امروز پسورد رو تغییر داده یا نه؟ این یه روش مبتنی بر تنبلی هست که نخواهید یک جدول جداگانه برای کنترل این موضوع ایجاد کنید و اون رو چک کنید. البته به نقطه ضعف هم داره و اون اینه که اگر کاربرتون یه فیلد دیگه مثل اسمش رو هم تغییر بده این شرط true میشه.
اما اگه بخواین اصولی تر کار کنید یا از throttle باید استفاده کنید یا اینکه یک جدول بایگانی ارسال کد درست کنید که آخرین دفعه ارسال کد رو در اون نگاه کنید و تصمیم بگیرید.

حامد ازادی ( 970 تجربه )
3 ماه پیش

عزیز منظورم از ارسال کد. کد وریفای هست . اصلا متوجه نشدید منظورم رو

arazsalmasi ( 5311 تجربه )
3 ماه پیش

دوست عزیز میتونی یه تایمر بزاری و بگی مثلا با لمس کردن دکمه کد ارسال بشه و تایمر فعال بشه و مثلا زمان تایمر باشه 30 ثانیه تموم شد این زمان دوباره دکمه فعال بشه

برای ارسال پاسخ باید وارد سایت شوید