猿问

token 怎么设置过期时间

我想设置 token 的过期时间为24小时,于是我在 token 里加入时间字符串,比如2018-09-06:

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

可是这样有个问题,当我2018-09-06晚上11点59登录系统,过了一分钟就是2018-09-07,也就是这次登录才一分钟 token 就失效了,这肯定不符合要求,所以是不是我对 token 理解有问题?token 失效时间怎么设置才正确?

还有当前端调用后端接口时,前端是通过什么方式获得 token 的?我理解是后端生成 token 后把token写进cookie里,然后前端直接调用cookie里的数据,可是这样的话是不是每次前端调用接口前都要先调用下后端存token的那个文件?


千万里不及你
浏览 14012回答 1
1回答

慕后森

这个是你代码的问题一般来说Token还是需要保存的从你这个代码来看,我推测你是不想保存token,token也不会被中途取消,只想让token到时过期,那你可以把Token的到期时间直接写在Token明文里,到时候直接拼接就好了。比如你的Date 是2018-9-6,那你可以直接 md5("2018-9-6 14:17:52".model.path."^@*……")."$$2018-9-6 14:17:52"那么你的token Hash出来应该是形如efe6398127928f1b2e9ef3207fb82663$$2018-9-6 14:17:52,验证的时候,直接把后面的日期取出来再做一遍md5即可。相当于是用$model.$path."&#^@*……"对2018-9-6 14:17:52这个时间进行了一个签名
随时随地看视频慕课网APP
我要回答