Как получить сервер datetime в JS? - PullRequest
1 голос
/ 30 июня 2019

Я внедряю авторизацию HMAC в своем SPA и использую текущую дату и время в качестве части моего хэша, чтобы токены могли истечь.Очевидно, что на компьютере клиента может быть установлена ​​любая дата и время, и для правильной проверки на сервере она должна соответствовать дате и времени сервера.Каков наилучший способ для этого?

В настоящее время я могу придумать несколько способов, которые будут работать:

  1. Перед каждым запросом отправляйте запрос API для получения даты и времени текущего сервера(не предпочтительный метод, так как это, по сути, удваивает количество запросов AJAX).
  2. При загрузке страницы отправьте запрос API для получения даты и времени текущего сервера, а также сохраните дату и время клиента.Для любых дальнейших ajax-запросов сравните текущее время со временем клиента и добавьте ту же разницу к сохраненному начальному времени сервера, чтобы по существу получить время сервера.
  3. То же, что # 2, но вместо первоначального запроса API вставьтедата и время на самой странице HTML.

Есть ли какой-нибудь лучший способ, о котором я не думаю?Какие-либо предостережения № 2 и № 3 (с часовыми поясами, DST и т. Д.), Которые мне не хватает?

Спасибо!

...