嗨,我正在创建一个令牌以与数据库中的某些记录进行比较以登录用户。我正在使用token = openssl_random_pseudo_bytes
来设置此随机字符串,但是它在浏览器和数据库中的存储方式似乎有所不同。如何比较这两个字符串?
答案 0 :(得分:0)
首先使用cookie方式设置值令牌
$value = "23asdoq23ARDAsdadq2";
// cookie will expire when the browser close
setcookie("tokenCookie", $value);
// cookie will expire in 1 hour or set it to your needs
setcookie("tokenCookie", $value, time() + 3600);
或将持续时间设置为0,以使cookie持续时间仅在用户浏览器关闭时结束
setcookie("tokenCookie", $value, 0);
然后检索cookie,并将从数据库中选择的令牌值与cookie令牌进行比较。
if(!isset($_COOKIE['tokenCookie'])) {
$tokenCookie = $_COOKIE['tokenCookie'];
// Assume you already retrieved the token value from the database and stored it to a variable then you just need to compare it..
if( $tokenCookie == $token_value_from_database ){
echo true;
}else{
echo false;
}
}