PHP bir cookie bir siteye kimlik doğrulaması sağlamak için en iyi yolu?

2 Cevap php

Ben bir temel cevabı olmalı bu yüzden temel bir soru olduğunu biliyorum. Ben hep sadece ben şimdi onlar çerezleri kullanarak istedikleri takdirde geri siteme gelip Bağlı kalmak için bir kullanıcı için bir seçenek yapmak istiyorum oturumları kullanarak bir kullanıcı giriş sistemi yaptık. Ben bunu yapmanın en iyi yolu emin değilim ama temel işlevi Ben aşağıda çalışabilir düşünüyorum yolu küçük bir maketini var. Ben farklı yapıyor olmalıdır eğer bu konuda doğru ya da görünüyor eğer söyle lütfen. Çerez büyük olasılıkla bir kullanıcı kimliği ve yeniden oluşturulmuş olacak bazı şifreli tuşunu yapacak everytime onlar "giriş"

// see if Session is set
if (!isset($_SESSION['userID']) || $_SESSION['userID'] == ''){

    // session is not set so see if cookie is set
    if (isset($_COOKIE['userID'])){
        //cookie is set so check that it is valid login ID and key
        // if it returns tru then we will also initiate there session value so they will be logged in
    }else{
        // redirect to login page
    }

    if (!isset($_SESSION['userID']) || $_SESSION['userID'] == ''){
        // redirect to login page
    }

}else{
    //user is logged in already
}

2 Cevap

Ne geçmişte kullanmış bir kullanıcı kimliği ve kimliği doğrular bir sağlama içeren bir depolamak, iki kurabiye ayardır. İşte bir örnek:

//store website user id
setcookie('userid', $userid, time() + 2592000, "/");
//store checksum
setcookie('checksum', md5($userid."F%^WD&*^("), time() + 2592000, "/");

Sağlama kullanıcı'kimliği bir tuzlu md5 hash, bu yüzden ters başka bir kullanıcı kimliği (hayır sağlama durumunda, kolayca 'kimliği' çerez değiştirmek olabilir) yansıtmak için tasarlanmış ya da değiştirilmiş olamaz.

Oturumu geri yüklemek için, sadece kurabiye kontrol ve kullanıcı kimliği karşı (aynı 'tuz' ile) sağlama doğrulamak:

//Restore stored user session
if (md5($_COOKIE["userid"]."F%^WD&*^(") == $_COOKIE["checksum"])
{
    //retrieve user again and store in session
}

Sen doğru yoldasın; Bu çoğu uygulamaları eser "beni hatırla" nasıl.