ریدایرکت به صفحه لاگین بعد از خطای 401 unauthorized
سلام خسته نباشین
مواقعی هست که کاربر در سامانه لاگین میکنه و برای 4 ساعت اتورایز میشه ولی وقتی بعد از 4 ساعت بخواد تغییری انجام بده مجدد باید لاگین کنه ولی خطای 401 میده سامانه و باید به صفحه لاگین به صورت اتومات ریدایرکت کنه ، که نمیکنه
میخواستم ببینم چطور باید اینکار در صورت ارور 401 به صفحه لاگین ریدایرکت کنم
ممنون
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}).AddCookie(options =>
{
options.AccessDeniedPath = "/Account/AccessDenied";
options.LoginPath = "/Account/Login";
options.LogoutPath = "/Account/Login";
//options.ForwardAuthenticate = "/Account/TimeOut";
options.ExpireTimeSpan = TimeSpan.FromHours(4);
options.Cookie.IsEssential = true;
options.SlidingExpiration = true;
});
گزاشتم این موضوع رو ولی وقتی زمان به اتمام میرسه و کاربر صفحه رو رفرش میده دیگه ریدایرکت نمیکنه تو صفحه لاگین و ارور 401 میده بعدش کاربر خودش باید به صورت دستی بره تو صفحه ی لاگین
دلیل اینکه بعد از چند دقیقه یا چند ساعت کاربر شما logout میشه پاک شدن session های سرور هست. در واقع در سرورها یا هاست های اشتراکی به دلیل اینکه سایت های زیادی همزمان از سرور در حال استفاده هستن مسیول سرور میاد هر چند ساعت یک بار session ها رو پاک میکنه تا فشار کمتری به سرور هم وارد بشه.
برای رفع این مشکل 2 راه حل هست.
- اول اینکه از سرور اختصاصی استفاده کنید.
- دوم اینکه با مسیول سرور با هاست صحبت کنید که زمان پاک شدن session ها رو افزایش بده.
برای اینکه کاربر بعد از unAuthorize شدن به صفحه login هدایت بشه از کد زیر در کلاس startup استفاده کنید:
services
.AddAuthentication()
.AddCookie(options =>
{
options.LoginPath = "/login";
options.LogoutPath = "/logout";
});
من در آموزش انبارداری شرکت کردم نکته اینجاست که پروژه فرانت ما احراز هویت (Authorize) شده و بک ما هم که با استفاده از توکن ساخته شده نکته اینجاست فرانت من هنوز Authorize هست ولی پروژه بک من unAuthorize میشه
و وقتی میخوام صفحه ای رو باز کنم به مشکل Authorize در پروژه بک میخورم حالا میخوام بدون چطور اگه unAuthorize در پروژه بک اتفاق افتاد چطور مجدد تولید توکن کن - مشکل اینجاست که اگه وب سرویس unAuthorize برگردونه به صفحه لاگین ریدایرکت نمیشه و ارور زیر داده میشه
برای حل این مشکل باید کش پاک بشه تا مجدد Authorize انجام شود
نکته : به زمان منقضی شدن توکن و Authorize در 2 سمت فرانت و بک توجه کردم و مثل آموزش گزاشتم
نکته : سرور اختصاصی هست
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2