مهدی
1 سال پیش توسط مهدی مطرح شد
3 پاسخ

لاگین با ریکت و لاراول

سلام دوستان
من در حال پیاده سازی یه پروژه هستم
بک اند اون رو داریم با لاراول میزنیم و فرانت اون رو با ریکت
کاربر به محض این که لاگین می کنه با لاراول اطلاعات کاربر رو مثل ایمیل و... رو بر می گردونم سمت ریکت
حالا توی ریکت می خوام بدونم امن ترین حالت ممکن برای ذخیره اطلاعات کجاس؟
می دونم ذخیره اطلاعات توی local storage امن نیست ولی نمیدونم که دیگه کجا میشه اطلاعات رو ذخیره کرد
نکته دیگه اینه که می خوام هر جا اطلاعات ذخیره شد بعد 2 ساعت هم توکن و هم اطلاعات کاربر رو به صورت خود به خود پاک کنه و دوباره لاگین کنه
@salar.mohammad2013
@ossvahid
@Raymond
@Raymond
@saghari


ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 1 سال پیش مطرح شد
1

سلام
توی فرانت چیزی به اسم امن نداری دیگه
هر داده ای داری دیده میشه ولی برای همون شخصی که لاگین کرده دیگ
یعنی یکی لاگین شده اطلاعات خودشو داری ب خودش نشون میدی پس اشکالی نداره
اگر این وسط اطلاعاتی داری که خود شخص هم نباید بدونه خب اصلا نباید اون اطلاعات رو برگشت بدی سمت فرانت
توی لاراول راجب کالکشن هایی که مربوط به داده های بازگشتی هست سرچ کن (نوع داده ای رو نمیگم ، php artisan make:resource این دستور منظورمه ) هم ریسورس هم کالکشن میسازی و مشخص میکنی برای یک مدل چه داده هایی برگشت داده بشه و چی برگشت داده نشه
ولی در کل کسی که لاگین کرده اطلاعات خودشه که برگشت دادی
اما اگر نگران اینی که طرف لاگ اوت بشه و اطلاعات بمونه خب اصلا نباید توی کوکی و لوکال استوریج ذخیره کنی این چیزا رو
یا ریداکس بزار یا از کانتکس استفاده کن و روتی قرار بده که هر وقت نیاز بود اون داده رو بگیری از سرور یه درخواستی بدی
مثلا از طریق کوکی میدونی لاگینه اما اطلاعت کاربر null
یه درخواست بده سمت سرور و داده بنشون توی کانتکس
در کل راه حل زیاده بستگی داره تو چی مد نظرت باشه


مهدی
@MM20001378 1 سال پیش مطرح شد
0

خب الان توی اطلاعاتی سمت فرانت دارم بر می گردونم یک role_id هم وجود داره که می خوام طبق اون به کاربر دسترسی بدم
حالا اگه کاربر بیاد و role_id خودش رو تغییر بده به همه قسمت های سایت دسترسی داره و من نمی خوام این اتفاق بیوفته
@salar.mohammad2013


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 1 سال پیش مطرح شد
0

قرار نیست شما سطح دسترسی رو سمت کاربر و فرانت پیاده کنی
اون رول فقط برای نمایش ظاهر کار و پنهان سازی بعضی تیتر ها و عناوین و مثلا صفحات از نظر منویی باید باشه
شما سمت سرور هیج داده ای که کاربر بهش دسترسی نداره رو نباید ارسال کنی به فرانت
یعنی فرض بگیر من یک صفحه ادمین دارم superuser
همه چی توش هست تمام کمال
حالا من ایدی رو role رو عوض میکنم اون صفحه رو هم ادرسش رو دیدم تو سیستم ادمین باز میکنم
صفحه فرضا توسط ری اکت باز میشه
ولی هیچ داده ای توش نیست از سمت سرور و هیچ درخواستش هم به سمت سرور پاسخ داده نمیشه
فقط یه ظاهر میتونه ببینه از اون صفحه ی ادمین و قطعا اطلاعات هر صفحه بعد باز شدنش مثلا با useEffect از سرور دریافت میشه دیگه پویاست همه چی پس عملا اون صفحه داده ی مهمی توش برای نمایش نیست
اگر خیلی حساسی به این موضوع که همین صفحه هم دیده نشه دیگ کلا نباید داده رو ذخیره کنی جایی و هر بار باید درخواست بدی سمت سرور و دسترسی شخص رو چک کنی که همین روش هم بعد از باز شدن صفحه ی درخواستی اتفاق میفته و عملا فرقی نمیکنه توی نمایش
میتونی بری سمت nextjs و از middleware هاش استفاده کنی و قبل باز شدن هر صفحه از سرور بگیری اطلاعت دسترسی کاربر رو که کار خوبی نیست چون سرعت سایت کم تر میشه در جابه جایی صفحاتش
ولی از دید من اصلا مهم نیست چون سمت سرور باید همه ی دسترسی ها رو ببندی همین و role کاربر رو از front چک نکنی هیچوقت و همیشه موقع نیاز از دیتابیس دریافتش کنی همین


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

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