У меня есть экземпляр Thinktecture Identity Server v3 в Azure, размещенный как WebApp. В целом, он работает должным образом, но у меня возникают некоторые проблемы при попытке использовать токен обновления через конечную точку identity / connect / token токена с типом предоставления refresh_token. У меня есть клиент, который использует поток кода авторизации, и это настройки, связанные с параметрами токена обновления для этого клиента:
// refresh token options
AccessTokenType = AccessTokenType.Jwt,
AccessTokenLifetime = 3600,
RefreshTokenUsage = TokenUsage.OneTimeOnly, // Every time generates new refresh token. Not only access token.
RefreshTokenExpiration = TokenExpiration.Sliding,
SlidingRefreshTokenLifetime = 1296000
для людей, которые работали с этим, ясно, что я использую токены JWT, и мой токен доступа действителен в течение 1 часа, а после этого, без необходимости повторного входа на сервер идентификации, я могу использовать токен обновления и получить новые токены доступа и обновления . Мой токен обновления должен быть действителен в течение 15 дней (1296000 секунд). На самом деле происходит то, что он работает не так, как ожидалось. По какой-то причине, когда я решаю позвонить своему REST API (проверяющей стороне Identity Server) через полтора часа после предыдущего, я получаю ответ invalid_grant.
Я решил немного протестировать его и сделал мой токен доступа истекающим через 2 минуты, а мой токен обновления через 10. Ну, затем я попытался сделать вызов через 1, 2, 3 ... минуты после истечения срока действия токена доступа, и он работал как положено. Я действительно не хочу проводить такого рода тестирование с 1-часовым токеном доступа, поэтому я решил спросить здесь, проходил ли кто-нибудь это раньше.