如何设置 JWT 刷新令牌在 mysql Php 天后过期
How to set JWT refresh token expiry in days from mysql Php
我想根据 MySQL 日期时间值设置 JWT 刷新令牌到期时间。
到期日期来自 MySQL,格式为
$usr_event_data["allocexpdt"] = 2022-05-30 00:00:00.000000
//this is how I am having it right now. its always giving token expired.
$iat = time();
$nbf = $iat + 10;//10 seconds
$exp = $iat + 30;//30 seconds $usr_event_data["allocexpdt"];
$aud = "myusers";
我希望刷新令牌准确地在 2022 年 5 月 30 日 11:59:59 到期,无论 mysql 的日期时间的时间段是什么,它都应该始终在 11:59:59 到期] 那一天。
请记住,PHP time()
函数 returns 现在的时间,这对你没有用。
可能最简单的事情就是让查询以您想要的格式提供日期数据。
SELECT .,.,., UNIX_TIMESTAMP(DATE(allocexpdt)+1)-1
也就是说,只获取包含 2022-05-30 00:00:00.000000
的列的数据部分“2022-05-30”,在该日期基础上加上 1 天,然后从中减去一秒,得到 23:59:50
时间部分.
或者只是 PHP
$from_mysql = "2022-05-30 00:00:00.000000";
$dat = substr($from_mysql, 0, 10); //2022-05-30
$dat .= ' 23:59:59'; //2022-05-30 23:59:59
//using the DateTime class convert the date time to milliseconds since epoch
$dt = new DateTime($dat);
echo $dt->getTimestamp(); //1653955199 second since epoch
// you may now need to multiply by 1000 as javascript dates are held in millisecond
echo $dt->getTimestamp() * 1000; //1653955199000
我想根据 MySQL 日期时间值设置 JWT 刷新令牌到期时间。 到期日期来自 MySQL,格式为
$usr_event_data["allocexpdt"] = 2022-05-30 00:00:00.000000
//this is how I am having it right now. its always giving token expired.
$iat = time();
$nbf = $iat + 10;//10 seconds
$exp = $iat + 30;//30 seconds $usr_event_data["allocexpdt"];
$aud = "myusers";
我希望刷新令牌准确地在 2022 年 5 月 30 日 11:59:59 到期,无论 mysql 的日期时间的时间段是什么,它都应该始终在 11:59:59 到期] 那一天。
请记住,PHP time()
函数 returns 现在的时间,这对你没有用。
可能最简单的事情就是让查询以您想要的格式提供日期数据。
SELECT .,.,., UNIX_TIMESTAMP(DATE(allocexpdt)+1)-1
也就是说,只获取包含 2022-05-30 00:00:00.000000
的列的数据部分“2022-05-30”,在该日期基础上加上 1 天,然后从中减去一秒,得到 23:59:50
时间部分.
或者只是 PHP
$from_mysql = "2022-05-30 00:00:00.000000";
$dat = substr($from_mysql, 0, 10); //2022-05-30
$dat .= ' 23:59:59'; //2022-05-30 23:59:59
//using the DateTime class convert the date time to milliseconds since epoch
$dt = new DateTime($dat);
echo $dt->getTimestamp(); //1653955199 second since epoch
// you may now need to multiply by 1000 as javascript dates are held in millisecond
echo $dt->getTimestamp() * 1000; //1653955199000