سلام
من قصد دارم بخشی از سایتم رو بدون استفاده از سیستم authenticationلاراول و جدول users و کلاس های مربوطه پیاده سازی کنم
تا قسمتی این روند رو پیش بردم اما برای اینکه میخوام دچار خطای امنیتی نشم از شما کمک بگیرم
روند کار به این صورت هستش
کاربر برای دسترسی به پنل کاربری شماره تلفن خودش رو وارد میکنه
صحت شماره تماسش بررسی میشه
یک کد تایید براش تولید میشه
و باید اون رو به یک سامانه پیامکی ارسال کنه و در صورتی که کد تولید شده ( که در دیتابیس وجود داره) با کد ارسال شده توسط کاربر به سامانه پیامکی برابر باشه اجازه ورود براش صادر میشه
تا این قسمتشو پیاده سازی کردم اما اینکه چجوری براش اجازه ورود صادر بشه رو نمیدونم
چیزی که تو ذهن خودم هست اینه که بیام درست در زمانی که کد داره براش ایجاد میشه یه مقدار hash شده در session قرار بدم و اون مقدار hash شده رو در دیتابیس هم نگهداری کنم. زمانی که کاربر ارسال کد رو انجام داد میاد رو یه دکمه کلیک میکنه و میگه من این کارو انجام دادم لطفا بررسی رو برام انجام بده
زمانی که رو دکمه کلیک کرد بیام مقدار hash ذخیره شده در session رو با رکوردی که با اون hash مطابقت داره رو پیدا کنم و مقدار status اون رکورد رو true کنم
از این به بعد چون session ذخیره شده برای کاربر باقی مونده (فرار نیست) هر بار که وارد سایت میشه میرم سراغ رکورد دیتابیس متصل به اون hash و اگر status برابر true باشه داشبورد بهش نمایش داده میشه
لطفا اگه پیشنهادی دارید بگید
اگه جایی دارم اشتباه میکنم بگید
سلام
پاسخ بنده به این گفتگو رو مطالعه بفرمایید، روند کلی جایگزینی احراز هویت با پسورد رو با otp توضیح دادم.
سلام به نظر بنده از همون سیستم لاراول استفاده کنید فقط باید کمی کاستومایز بشه
شما وقتی شماره کاربر رو احراز کردی کافیه اون رو از تیبل users سلکت کنی و با یکی از این دو فانکشن لاگین کنی
$mobile_number ='...';
$user=User::where('mobile_number',$mobile_number)->first();
auth()->login($user);
//or
auth()->loginUsingId($user->id);
https://laravel.com/docs/7.x/authentication#other-authentication-methods
مرحله اول رو خوب پیاده سازی کردی..
برای مرحله دوم میتونی از Auth facade لاراول استفاده کنی..
مثلا شماره تلفن و کدی که ساخته شده رو بهش پاس بدی
تا چک کنه ببینه اطلاعات توی جدول هست یا نه..
متد attemp هم داره که میتونی باهاش کاربرو لاگین کنی.
مستندات رو بررسی کنید:
https://laravel.com/docs/7.x/authentication#authenticating-users
سلام
پاسخ بنده به این گفتگو رو مطالعه بفرمایید، روند کلی جایگزینی احراز هویت با پسورد رو با otp توضیح دادم.
@amin.mokhtari94
پاسخ شمارو مطالعه کردم
کاری که من دارم میکنم کمی متفاوت هستش
نمیخوام از هیچکدوم از کنترلرها و یا کلاس های آماده لاراول استفاده کنم
مشکل اصلی من تو قسمت امنیت هست
سوالی که دارم دقیقا این هستش
اون قسمتی که دارم یه کد hash شده تو session کاربر قرار میدم و اونو تو دیتابیس ذخیره میکنم و بعد برای بررسی به رکوردی که مربوط به session کاربر هست مراجعه میکنم و وضعیت status رو چک میکنم
حس میکنم تو این مرحله یه خطای امنیتی ممکنه وجود داشته باشه
میخوام از این مسئله مطمئن بشم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟