我有一个像SO这样的网站。 登录页面中还有一个名为忘记密码的链接,该链接会发送电子邮件以重置密码。如您所知,电子邮件包含以下链接:
http://www.example.com/resetpassword?token={what thing can be here?}
如您所见,我的问题是该令牌的价值。
这是我的表结构:
// users
+----+--------+---------------+---------------+------------------------------+
| id | name | password | cookie | /* and some other columns */ |
+----+--------+---------------+---------------+------------------------------+
| 1 | jack | d404559f60... | 0c2c62b9dc... | /* anything */ |
+----+--------+---------------+---------------+------------------------------+
password
专栏:
$password = $_POST['password']; // ex: 1234
$password = hash('sha512',$pass); // d404559f602eab6fd602ac7680dacbfaadd13630335e951f097af3900e9de176b6db28512f2e000b9d04fba5133e8b1c6e8df59db3a8ab9d60be4b97cc9e81db
cookie
专栏:
$email = 'jack.1998@gmail.com';
$cookie = hash('sha512', $email.$password); // 0c2c62b9dc9bdf72ce4c845cc400dcc96ebf9898e1b3e821c7d99cae3dbe486e3b0534ccd73903dfc03cb4b424b39fdd67b68724708ddfd56424bf14ee4507bf
当我读到this和this答案时:该标记应该是一个随机字符串。我必须将它存储到数据库(用于验证)。
我的问题是什么?我可以使用$cookie
的值作为该令牌吗?
注1:我已使用$password
变量生成$cookie
值,因为我想在更改密码时从所有设备注销用户。< / p>
注2:我不希望重置密码链接(我已发送到电子邮件中)的任何过期时间。