رادین
5 سال پیش توسط رادین مطرح شد
4 پاسخ

استفاده نکردن از سیستم auth لاراول

سلام
من قصد دارم بخشی از سایتم رو بدون استفاده از سیستم authenticationلاراول و جدول users و کلاس های مربوطه پیاده سازی کنم
تا قسمتی این روند رو پیش بردم اما برای اینکه میخوام دچار خطای امنیتی نشم از شما کمک بگیرم
روند کار به این صورت هستش
کاربر برای دسترسی به پنل کاربری شماره تلفن خودش رو وارد میکنه
صحت شماره تماسش بررسی میشه
یک کد تایید براش تولید میشه
و باید اون رو به یک سامانه پیامکی ارسال کنه و در صورتی که کد تولید شده ( که در دیتابیس وجود داره) با کد ارسال شده توسط کاربر به سامانه پیامکی برابر باشه اجازه ورود براش صادر میشه

تا این قسمتشو پیاده سازی کردم اما اینکه چجوری براش اجازه ورود صادر بشه رو نمیدونم

چیزی که تو ذهن خودم هست اینه که بیام درست در زمانی که کد داره براش ایجاد میشه یه مقدار hash شده در session قرار بدم و اون مقدار hash شده رو در دیتابیس هم نگهداری کنم. زمانی که کاربر ارسال کد رو انجام داد میاد رو یه دکمه کلیک میکنه و میگه من این کارو انجام دادم لطفا بررسی رو برام انجام بده

زمانی که رو دکمه کلیک کرد بیام مقدار hash ذخیره شده در session رو با رکوردی که با اون hash مطابقت داره رو پیدا کنم و مقدار status اون رکورد رو true کنم
از این به بعد چون session ذخیره شده برای کاربر باقی مونده (فرار نیست) هر بار که وارد سایت میشه میرم سراغ رکورد دیتابیس متصل به اون hash و اگر status برابر true باشه داشبورد بهش نمایش داده میشه

لطفا اگه پیشنهادی دارید بگید
اگه جایی دارم اشتباه میکنم بگید


ثبت پرسش جدید
Mohammad Amin Mokhtari
تخصص : برنامه نویس
@amin.mokhtari94 5 سال پیش مطرح شد
0

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


مهدی مهدوی
تخصص : تازه وارد
@mehdi.mahdavi97 5 سال پیش مطرح شد
0

سلام به نظر بنده از همون سیستم لاراول استفاده کنید فقط باید کمی کاستومایز بشه
شما وقتی شماره کاربر رو احراز کردی کافیه اون رو از تیبل 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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

مرحله اول رو خوب پیاده سازی کردی..

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

مستندات رو بررسی کنید:
https://laravel.com/docs/7.x/authentication#authenticating-users


Mohammad Amin Mokhtari
تخصص : برنامه نویس
@amin.mokhtari94 5 سال پیش مطرح شد
0

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


رادین
@beatbox.amir 5 سال پیش مطرح شد
0

@amin.mokhtari94
پاسخ شمارو مطالعه کردم
کاری که من دارم میکنم کمی متفاوت هستش
نمیخوام از هیچکدوم از کنترلرها و یا کلاس های آماده لاراول استفاده کنم

مشکل اصلی من تو قسمت امنیت هست
سوالی که دارم دقیقا این هستش
اون قسمتی که دارم یه کد hash شده تو session کاربر قرار میدم و اونو تو دیتابیس ذخیره میکنم و بعد برای بررسی به رکوردی که مربوط به session کاربر هست مراجعه میکنم و وضعیت status رو چک میکنم
حس میکنم تو این مرحله یه خطای امنیتی ممکنه وجود داشته باشه
میخوام از این مسئله مطمئن بشم


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

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