अधिकांश ऑटो-लॉग इन के लिए मुझे पता है, लॉग-इन सत्रों को स्टोर करने के लिए एक अलग तालिका है। प्रत्येक ऑटो-लॉगिन सत्र को एक पहचानकर्ता के रूप में एक हैश कुंजी असाइन की जाती है, कुंजी काफी लंबी होती है और वास्तव में खराब होने के लिए संभव नहीं है। यदि आप नहीं चाहते हैं कि उपयोगकर्ता वैध कोड के साथ भी क्रॉस-आईपी में लॉग इन हों, तो इसे आजमाएं।
function gen_uniqueIdent($length=32){
$alphabet = str_split('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789');
$key = '';
for($loop=0;$loop<$length;$loop++){
$i = mt_rand(0,count($alphabet)-1);
$key.= $alphabet[$i];
}
return $key;
}
लॉगिन पर उपयोगकर्ता कुकी पर यह मान असाइन करें। फिर इसे डीबी में स्टोर करें:
function save_ident($identFromFunctionAbove,$authenticated_user_id){
//hash this with something unique to the user's machine
$hashed = md5($identFromFunctionAbove . $_SERVER['REMOTE_ADDR']);
/** Some actions to remember this hash **/
}
उपयोगकर्ता_आईडी जैसे उपयोगकर्ता पहचान के साथ डेटाबेस को दूषित करने में सहेजता है।
अब उपयोगकर्ता कुकी के सत्यापन पर, तो आप बस कर सकते हैं:
function validateCookie(){
$ident = $_COOKIE['yourCookieName'];
$hashed = md5($ident . $_SERVER['REMOTE_ADDR']);
/** Check if this hashed value exists in db, if it does, authenticate user **/
}
तुम भी उनकी समय सीमा समाप्त या उपयोगकर्ता स्पष्ट रूप से लॉग आउट करने के बाद सत्र को दूर करने की आवश्यकता होगी।
बेशक यह बहुत आसान है, और एमडी 5 या पहचान टकराव के लिए जिम्मेदार नहीं है। फिर भी, दो 32-वर्ण यादृच्छिक जेनरेट स्ट्रिंग को पहले से जेनरेट किया गया जैसा ही होना एक मौका है।
"जब कोई उपयोगकर्ता आपकी वेबसाइट पर जाता है, तो आप उस कुकी के मूल्य की जांच कर सकते हैं और उपयोगकर्ता को यह प्राप्त कर सकते हैं और उन्हें लॉग इन कर सकते हैं" ऐसा करने का सबसे अच्छा तरीका क्या है? बस उन्हें अपने उपयोगकर्ता/पास डीबी से सुरक्षित पृष्ठ पर रीडायरेक्ट कर रहे हैं? – CodeCrack
@CodeCrack आपके पास पूर्ण नियंत्रण है कि उपयोगकर्ता प्रमाणीकृत है या नहीं, इसलिए वास्तव में कोई अच्छा तरीका नहीं है। बस वही काम करें जो आप अपना उपयोगकर्ता नाम/पासवर्ड दर्ज करने के बाद करेंगे। आपके पास संभवतः 'पूर्ण_login()' नामक एक फ़ंक्शन या कुछ है जिसे सत्र में आवश्यक डेटा है (या बना सकता है)। –
लॉगिन पर पुराने टोकन को नष्ट करने का क्या फायदा है? मुझे लगता है कि उस पल में एक नया ग्राहक भी पास हो जाएगा, है ना? – Uwe