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