Я новичок в сети asp, и мне нужно спросить, как лучше всего справиться с истечением срока действия токена. Когда я вхожу в систему в своем приложении, я получаю эту строку.
{
"access_token": "pakfbdODTcW9z2uLpVu90DVAhzfKgfYPyxF_6gHI3LbNK4OzrL0RPTUlkgif4WhrQH9yKppjbkyll8Qmi8y_lFkm0NV9bnB0o0Bc2W6Js9oVN8HQZX6FK1j2C_pbrDCL9f47VSJpWSUNLKv5TjUbktHk_StWxrAASJCRjiFqp45hLcJccl2W3xaSl0vYuyhibqboDlPAH55vHuCqGilIEs5eVRH-ZKERaV9xf3qAigr7lF9rPedP5P9CjoxDfU0LJkWYfNuz1PInVGs0mRK2zztlh27Kfkc68tN1B3Ix3aY1JxNu6bjShVESMD_VW_bKU-wFfuA3FSnxVRP3T08pODimd8FaCaHs0HUWwHewgbAMPjeGpySd_3z1lOx657jDLjmXfOahldIhdXGLWykcwdokxYmOzycPoSVYA1LTzx4Nud6YeeW1232HCsE_ZT_O8V5tnwJo0--MdBz2HVvHa08PrBsS96BThLiYPJBidlo",
"token_type": "bearer",
"expires_in": 3599,
"userName": "[email protected]",
".issued": "Sat, 15 Dec 2018 20:13:07 GMT",
".expires": "Sat, 15 Dec 2018 21:13:07 GMT"
}
В моем приложении asp net указано, что срок действия моего токена истечет через час. Проблема в том, что если у моего клиентского устройства неправильный час, что там произойдет? Если устройство моего клиента находится через час или если клиент тем временем пойдет и изменит время своего устройства ... Насколько я понимаю, это не самый безопасный способ сравнивать чистое время истечения asp с временем на клиентском устройстве. Второй способ, который кажется решением проблемы, - создать таймер, который будет срабатывать каждый час.
Могу ли я найти какой-нибудь учебник или метод?
Да, но как клиент теперь будет по истечению срока? Как я могу представить, ему нужно сравнить это с datetime, верно? Или мне нужно проверять каждый запрос, вернется ли сервер (401 Unothorized), чтобы запросить новый токен?
Да, вам в любом случае нужно обрабатывать ошибочные ситуации. Срок действия токена может истечь в любой момент на сервере, независимо от того, что он говорит.
Итак, 1) делаю запрос, и я беру 401. 2) я запрашиваю новый токен 3) повторно выполняю свой запрос. Так все устроено?
Ага, вот как это работает
В ответе 401 / Unauthorized вы можете вернуть либо полезную нагрузку, либо заголовок ответа, который передает «просроченный токен» вызывающей стороне. Обязательно обновите документацию по API, включив в нее свой выбор.





Клиенту обычно не нужно заботиться. Если он знает, что срок его действия истек, он может получить новый. Если этого не произойдет, сервер сообщит об этом.