在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  PHP/ token 怎么設(shè)置過(guò)期時(shí)間

token 怎么設(shè)置過(guò)期時(shí)間

我想設(shè)置 token 的過(guò)期時(shí)間為24小時(shí),于是我在 token 里加入時(shí)間字符串,比如2018-09-06:

$token=md5(date("y-m-d", time()) . $model . $path . "&#^@*……");

可是這樣有個(gè)問(wèn)題,當(dāng)我2018-09-06晚上11點(diǎn)59登錄系統(tǒng),過(guò)了一分鐘就是2018-09-07,也就是這次登錄才一分鐘 token 就失效了,這肯定不符合要求,所以是不是我對(duì) token 理解有問(wèn)題?token 失效時(shí)間怎么設(shè)置才正確?

還有當(dāng)前端調(diào)用后端接口時(shí),前端是通過(guò)什么方式獲得 token 的?我理解是后端生成 token 后把token寫進(jìn)cookie里,然后前端直接調(diào)用cookie里的數(shù)據(jù),可是這樣的話是不是每次前端調(diào)用接口前都要先調(diào)用下后端存token的那個(gè)文件?

回答
編輯回答
撿肥皂

我覺(jué)得token是用戶登錄時(shí)根據(jù)用戶登錄IP加上登錄時(shí)間以及一些隨機(jī)字符和用戶信息綜合生成的加密字符串。登錄成功后保存在Session會(huì)話中,隨著會(huì)話的結(jié)束而失效。同時(shí)也可以對(duì)用戶傳入的token進(jìn)行安全驗(yàn)證。

2018年5月7日 05:42
編輯回答
葬憶

這個(gè)是你代碼的問(wèn)題

一般來(lái)說(shuō)Token還是需要保存的
從你這個(gè)代碼來(lái)看,我推測(cè)你是不想保存token,token也不會(huì)被中途取消,只想讓token到時(shí)過(guò)期,

那你可以把Token的到期時(shí)間直接寫在Token明文里,到時(shí)候直接拼接就好了。

比如你的Date 是2018-9-6,那你可以直接 md5("2018-9-6 14:17:52".$model.$path."^@*……")."$$2018-9-6 14:17:52"

那么你的token Hash出來(lái)應(yīng)該是形如efe6398127928f1b2e9ef3207fb82663$$2018-9-6 14:17:52,驗(yàn)證的時(shí)候,直接把后面的日期取出來(lái)再做一遍md5即可。
相當(dāng)于是用$model.$path."&#^@*……"對(duì)2018-9-6 14:17:52這個(gè)時(shí)間進(jìn)行了一個(gè)簽名

2018年4月16日 06:55