یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
مصطفی حسنی
2 سال پیش توسط مصطفی حسنی مطرح شد
3 پاسخ

خطای سینک نبودن داده ها

سلام دوستان، وقتتون بخیر
یک سوالی داشتم در مورد ارتباط بین بک اند و فرانت.
شما در نظر بگیرید که سایت داریم که فرد بعد از لاگین کرد توش، با توجه به نقشی که توی سایت داره (ادمین، ادیتور، یوزر عادی و ...) به صفحات خاصی هدایت میشه. کد اینجوری کار میکنه که بعد از درخواست لاگین توی سایت، بک اند اطلاعات فرد رو به فرانت میده و فرانت توی خودش ذخیره میکنه. حالا اگه به هر دلیلی، بک اند به صورت دستی توی دیتابیس، تصمیم به تغییر نقش این کاربر کنه، توی دیتابیس نقش تغییر میکنه ولی
فرانت چون اطلاعات رو از قبل دریافت کرده، خبری از تغییر نقش این کاربر نداره و کاربر رو هی به صفحه ای که نقش قدیمیش بوده میفرسته، ولی اونجا به دلیل احراز هویتی که توسط بک اند انجام میشه، هی ارور غیر مجاز میگیره. حالا چطوری این مشکل رو برطرف کنیم؟ آیا توی هر درخواستی که فرانت به بک میده، علاوه بر اطلاعاتی که لازمه، اطلاعات کاربر رو هم دوباره باید ارسال کنیم یا راه حل بهتری است؟


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

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


سید هادی خانیان
تخصص : برنامه نویس PHP
@hadikhanian 2 سال پیش آپدیت شد
0

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


مصطفی حسنی
تخصص : فریلنسر
@mostafa.hasani 2 سال پیش مطرح شد
0

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


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

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


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

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