دسته بندی ها
22:43 1400/07/20

تغییر مدت زمان اعتبار لاگین کاربر درسایت

مشخصات سوال کننده :
کاربر : mehrdad     امتیاز کاربر : ‎−3     رتبه کاربر : 7136
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2756
هوش مصنوعی

پاسخ هوش مصنوعی

برای تغییر مدت زمان اعتبار لاگین کاربر، شما باید تنظیمات مربوط به زمان انقضای توکن یا سشن کاربر را در سرور خود تغییر دهید. این تنظیمات معمولاً در فایل های پیکربندی یا کدهای مدیریت جلسه (session management) انجام می شوند.

به طور کلی، اگر شما از PHP استفاده می کنید، می توانید زمان انقضای سشن را با استفاده از کد زیر تغییر دهید:


session_set_cookie_params(3600); // به مدت 1 ساعت تنظیم می شود
session_start();

اگر از فریمورک های خاصی مانند Laravel استفاده می کنید، باید فایل پیکربندی config/session.php را ویرایش کنید:


'lifetime' => 120, // مدت زمان سشن به دقیقه

در مورد JWT (JSON Web Tokens) نیز می توانید در زمان ایجاد توکن، مدت اعتبار آن را مشخص کنید. برای مثال:


$token = JWT::encode($payload, $secretKey, 'HS256', time() + 3600); // برای 1 ساعت

در نهایت، حتماً توجه داشته باشید که افزایش زمان اعتبار سشن می تواند به امنیت سیستم شما آسیب برساند، بنابراین باید با احتیاط این کار را انجام دهید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 10:55 1400/07/21

اگر شما از آیدنتیتی و Asp.net Core استفاده می کنید برای لاگین کاربر از دستور زیر باید استفاده کنید.

var result = await _signInManager.PasswordSignInAsync(UserName, Password, isPersistent: true, lockoutOnFailure: true)

خب در این دستور آرگومان سوم isPersistent هست که همون "مرا بخاطر بسپار" هست. وقتی مقدار این پارامتر برابر با true باشد تا زمانی که کاربر روی دکمه "خروج" کلیک نکرده باشه از سیستم بیرون نمیره. حتی اگر مرورگر رو ببنده هم Logout نمیشه. ولی اگر مقدار این متغیر false باشه به محض بستن مرورگر کاربر logout میشه.

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

خروج ناخواسته و سریع از سایت در Asp.net Core

به این پاسخ امتیاز بدهید    1
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود