میشه یه مثال کوچیک از کوکی بزنید که متوجه بشیم چجوری کاربر رو لاگین نگه داریم وقتی که هنوز کوکی منقضی نشده؟
سلام دوست عزیز
شما وقتی از سشنها استفاده میکنید این مورد سمت سرور تا یه زمان محدودی نگه داشته میشه
اما کوکی توی مرورگر ذخیره میشه و کلید و اطلاعات اون کوکی با هر بار درخواست به سرور فرستاده میشه
حالا ما میتونیم اون دیتارو دریافت کرده و هر کاری که لازم داریم انجام بدیم
مثلا برای لاگین موندن کاربر ما میتونیم یه جدول داشته باشیم با ستونهای user_id, token و بعد یه توکن رندوم بسازیم و یذاریم توی کوکی کاربر بعد با هر بار ریکوست میتونیم توکن رو بگیریم و توی پایگاه دادمون به دنبال اون توکن بگردیم و اگر پیداش کردیم اون user_id هم پیدا میکنیم و میتونیم باهاش اطلاعات کاربری که لاگین بوده رو داشته باشیم
موفق باشید ?
محمد گازری۰۲ مرداد ۱۴۰۱، ۰۳:۱۰
سلام مجدد
ممنون کاری که گفتید رو انجام دادم
آیا مثلا سونلرن هم از کوکیها استفاده میکنه برای اینکه وقتی کاربر دوباره به سایت مراجعه میکنه هنوز آنلاینه؟
و اینکه آیا کوکیها امنیت سایت رو پایین نمیارن؟ ممکنه کوکی دزدیده بشه! یا مثلا من میام از قسمت کوکی توکن رو سیو میکنم و توی مرورگر خودم ست میکنم
مهدی۰۲ مرداد ۱۴۰۱، ۲۰:۱۸
۱. بله استفاده میکنه مانند خیلی از سایتها
۲. دیتای حساس نذارید داخلش
موفق باشید ?
محمد گازری۰۳ مرداد ۱۴۰۱، ۰۰:۱۴
دیتای حساس منظورتون چیه؟
خب قطعا پسورد کاربر توی کوکی هست!
مهدی۰۳ مرداد ۱۴۰۱، ۰۰:۱۸
نه دیگه
گفتم که شما نباید نه آیدی جدول پایگاه داده رو ذخیره کنید و نه پسورد!
یه توکن بی معنی ذخیره میکنید
جلوتر پیش بیاید در طول دوره این مفاهیم بیشتر براتون جا میوفته!
محمد گازری۰۳ مرداد ۱۴۰۱، ۰۰:۲۰
من کاری که گفتید رو انجام دادم
یه جدول ساختم با ستونهای token و user_id و هر موقع که کاربر لاگین کرد یه توکن رندم توی کوکی ست میکنم و با گرفتن user_id اون توکن کاربر رو لاگین نگه میدارم، حالا کسی که توکن رو بدزده میتونه از اطلاعات کاربر استفاده کنه توی سایت
مهدی۰۳ مرداد ۱۴۰۱، ۰۰:۲۹
بله میتونه
این یه موضوعی هست که بیشترش سمت کاربر و نه ما!
کسی که توکن رو میدزده دسترسی به سیستم اون داشته یا فیزیکی یا با برنامه و افزونه مخرب
هر چند به برنامه نویس ربطی نداره این موضو باز اینجا شما میتونید ایتکار به خرج بدید و بیاید بگید هر توکن میتونه ۱ سشن آنلاین داشته باشه و ۲ دستگاه با ۱ توکن نمیتونن لاگین باشن (میتونید از ip در کشورهایی که ip static دارن و یا از نسخه مرورگر و... استفاده کنید)
محمد گازری۰۳ مرداد ۱۴۰۱، ۰۰:۳۲
من اومدم یه ستون دیگه به جدول اضافه کردم و نسخه مرورگر کاربر رو توش ذخیره کردم و اگه نسخه کوکی که ست شده با اون یکی نباشه logout میشه
نمیدونم این کار خوبه یا بده ولی دقیقا متوجه نشدم این جملهای که گفتید رو چجوری پیاده سازی کنم:
"هر توکن میتونه ۱ سشن آنلاین داشته باشه و ۲ دستگاه با ۱ توکن نمیتونن لاگین باشن"
مهدی۰۳ مرداد ۱۴۰۱، ۰۴:۱۲
با روشهای مختلف توکنش رو با دیتاهای دسگه مثل ip یا browser unique id چک میکنید
برای شناسایی مرورگر میتونید از ابزارهایی مثل ابزار زیر هم استفاده کنید