如何设置 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