Как проверить срок действия токена через expiry_time, идущий с этим в JavaScript
Я получаю токен доступа от Flipkart API и дает мне токен с истечением срока его действия. Но я не знаю, что они дали за истекшее время, они дают какую-то временную метку в секундах, так как я конвертирую эти секунды в минуты, тогда есть 56 дней, как что-то, что грядет. Когда я читал документ, он сказал, что токен истек через 60 дней. Но когда я нажму на API, он будет каждый раз давать мне разные метки времени в поле expiry_time. Например, первый тайм даст:
"access_token" : "0c87d3c8-824d-446b-bqf8-c14e7d49f06",
"expires_in" : 4773358
Через некоторое время я снова ударил его, потом он возвращается:-
"access_token" : "0c87d3c8-824d-446b-bqf8-c14e7d49f06",
"expires_in" : 4840646
Я просто хочу проверить этот токен через время его истечения, т.е. если срок действия токена истек, мне нужно снова нажать и получить новый токен. Как я могу проверить, что токен истек или нет.
Как я могу добиться этого с помощью сценария Java или Meteor Framework. Или я также хочу знать, в каком формате они дают мне эту метку времени в секундах, я думаю, или в каком-то другом. Как они сказали, токен истек через 60 дней, но когда я конвертирую это, он показывает только 56 дней, а не 60, поэтому, пожалуйста, объясните это для меня также, если кто-то знает.
Любая помощь будет оценена
Спасибо!
3 ответа
Я подозреваю, что они дают вам токен, срок действия которого истекает в полночь в определенный день недели, а не через 60*24*3600 = 5 184 000 секунд. Чтобы преобразовать эту задержку истечения в определенную дату и время, сделайте следующее:
var now = new Date();
expiryDate = t2=new Date(now.getTime() + expires_in*1000);
Вы должны умножить на 1000, потому что getTime()
возвращает миллисекунды
Я решил это так:
export const expiryToISODate = (expiresIn: number): string => {
const now = new Date();
now.setSeconds(now.getSeconds() + expiresIn);
return now.toISOString();
};
У меня тоже была такая же проблема, больше в другом сервисе. Посмотрите, что я сделал, когда я генерирую токен, я устанавливаю для него время истечения срока действия в метке времени и сохраняю его в файле cookie, а также секунды, давайте представим, что срок действия вашего токена истекает через один день, поэтому вы должны сохранить метку времени, генерируется одновременно с созданием токена, а также длительностью токена, которая в нашем случае составляет один день в секундах '1 день в секундах = 86400' Я не проверяю токен, чтобы узнать, сколько времени истекает, потому что я нужно будет использовать узел, вместо этого я использую секунды, в которые было задано время истечения токена, плюс временная метка, связанная с полезной нагрузкой. Я вычисляю метку времени, сохраненную в файле cookie, и секунды, создавая новую локальную метку времени, а затем вычитаю.