جواد کرمی
5 سال پیش توسط جواد کرمی مطرح شد
6 پاسخ

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

دوستان من میخوام توی پروژه خودم سیستم احراز هویت به صورت زیر باشه:
کاربر برای ثبت نام ابتدا شماره تماس و پسورد موردنظر خودش رو وارد کنه. بعد براش یه کد تایید ارسال شه و بره صفحه بعدی که اینپوت کدتایید قرار داره. کد رو وارد کنه اگر صحیح بود اعتبارسنجی بشه و انتقال داده بشه به صفحه تکمیل اطلاعات که اگه دوست داشت کامل کنه. برای لاگین هم که صرفا شماره تماس و پسورد( که این قسمت مشکلی نداره)
فرایندی که من طی کردم مشابه آموزش های دوره فروشگاهی لاراول همین سایت راکت هست اما متاسفانه توی آموزش صرفا با لینک فعالسازی کار میشه و کد تایید گفته نمیشه.
روشی که استفاده کردم به این صورته:
ابتدا یک ایونت و لیسنر تعریف کردم و توی اونها کد رو میسازم و بعد از ثبت نام کد اس ام اس میشه و کاملا درست کار میکنه.
در مرحله بعد میخوام وقتی ثبت نام کرد انتقال داده بشه به صفحه وریفای و در اونجا ازش کدتایید رو بگیرم و چک کنم و توی این مرحله گیر کردم ممنون میشم کمک کنید.
توی کنترلر چجوری باید کدی که فرستادم و یوزر مورد نظر رو بگیرم و ازشون استفاده کنم و کد رو اعتبار سنجی کنم؟
کد ها توی یه تیبل جدا ذخیره میشه و با تیبل یوزر ها رابطه یک به چند دارند.
@hesammousavi @mohsenbostan @hossein.r.1442 @juza66 @amin.mokhtari94


ثبت پرسش جدید
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش آپدیت شد
1

شما مراحل ارسال کدتایید رو تموم رفتین درسته؟؟
الان کاربر رو به فرم وریفای فرستادی درسته؟؟
الان توی فرم وریفای میخوای کدتایید رو اگر کاربر وارد کرد بره توی دیتابیس چک کنه اگر اوکی بود لاگینش کنه درسته؟؟
خب توی فرم وریفای میتونی دوتا اینپوت قرار بدی یکی شماره تلفن و دومی کد تاییدیه

یا شماره تلفنی که برای کنترلر ارسال پیامک رفته اونجا توی یک سشن ذخیره کنی و فقط کد کاربر رو توی فرم وریفای بگیری و به کنترلر وریفای بفرستی

توی کنترلر یک شرط به جدول وریفای میزنی اگر شماره موبایل توی سشن و کدی که از کاربر توی ریکوست ها دریافتی کردی درست بود زمان انقضاش تموم نشده بود پس از اوکی بود اطلاعات کاربر رو توی جدول کاربران براساس شماره موبایل find میکنی و بعدش لاگینش میکنی .

از تایپیک شما من برداشتم این بود که شما همه ی مراحل رو رفتین و الان توی سناریو وریفای گیر کردین اگر درست بود که توضیحات بالا رو داشتم بگم و اگر نادرست بیشتر توضیح بدین کجا گیر کردین در توانم باشه کمکت میکنم


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش مطرح شد
1

توی سیشن شماره موبایل رو سیو کن و توی صفحه وریفای شماره تلفن و کد رو بگیر بده به بک اند و اونجا چک کن اوکی بود لاگینش کن و در غیراینصورت خطا برمیگردونی


جواد کرمی
تخصص : توسعه دهنده وب و اپلیکیشن | فر...
@javadkarami 5 سال پیش مطرح شد
0

@juza66
امکانش هست موردی که فرمودید رو توی یک نمونه کد توضیح بدید؟توی کدوم قسمت باید سیشن رو بسازم؟ توی لیسنر؟


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش آپدیت شد
1

شما مراحل ارسال کدتایید رو تموم رفتین درسته؟؟
الان کاربر رو به فرم وریفای فرستادی درسته؟؟
الان توی فرم وریفای میخوای کدتایید رو اگر کاربر وارد کرد بره توی دیتابیس چک کنه اگر اوکی بود لاگینش کنه درسته؟؟
خب توی فرم وریفای میتونی دوتا اینپوت قرار بدی یکی شماره تلفن و دومی کد تاییدیه

یا شماره تلفنی که برای کنترلر ارسال پیامک رفته اونجا توی یک سشن ذخیره کنی و فقط کد کاربر رو توی فرم وریفای بگیری و به کنترلر وریفای بفرستی

توی کنترلر یک شرط به جدول وریفای میزنی اگر شماره موبایل توی سشن و کدی که از کاربر توی ریکوست ها دریافتی کردی درست بود زمان انقضاش تموم نشده بود پس از اوکی بود اطلاعات کاربر رو توی جدول کاربران براساس شماره موبایل find میکنی و بعدش لاگینش میکنی .

از تایپیک شما من برداشتم این بود که شما همه ی مراحل رو رفتین و الان توی سناریو وریفای گیر کردین اگر درست بود که توضیحات بالا رو داشتم بگم و اگر نادرست بیشتر توضیح بدین کجا گیر کردین در توانم باشه کمکت میکنم


جواد کرمی
تخصص : توسعه دهنده وب و اپلیکیشن | فر...
@javadkarami 5 سال پیش مطرح شد
0

@juza66
و مورد بعدی من تایم رو به چه صورتی باید بگیرم و توی ثانیه شمار نمایش بدم که اگه تایم تموم شد کاربر متوجه بشه و بتونه مجددا درخواست کد جدید رو بزنه


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
1

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

https://www.w3schools.com/howto/howto_js_countdown.asp


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش آپدیت شد
1

توی فیلد دیتابیس تاریخ ایجاد رو داری دیگه؟
توی فرم وریفای کدفعال سازی رو سمت تویی کنترلر میفرستی قبل از چک کردن تاریخ لحظه رو میگیری و منهای تاریخ ایجاد میکنی و چک میکنی از تاریخ ایجاد تا تاریخ لحظه رو، اگر کمتر از اون تایم مد نظرت بود خب اجازه فعال کردن اکانتش رو میدی

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

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام