#jwt #salesforce #demandware #salesforce-commerce-cloud
#jwt #salesforce #demandware #salesforce-коммерция-облако
Вопрос:
Пытаюсь использовать OCAPI Salesforce из приложения.
В документации по аутентификации JWT: https://documentation.b2c.commercecloud .salesforce.com/DOC2/index.jsp?topic=/com.demandware.dochelp/OCAPI/current/usage/JWT.html
Время жизни JWT составляет 30 минут. До истечения срока действия токена вы должны обменять его на новый токен, если хотите продлить общее время жизни.
Если зарегистрированный пользователь открывает приложение через 31 минуту, а срок действия сохраненного JWT истек, то как можно обновить его, не запрашивая снова экран входа в систему? (о сохранении учетных данных пользователя не может быть и речи из-за уязвимости в системе безопасности)
Ответ №1:
Как указано в документации, вы не можете обновить его, если срок его действия истек. Вы должны снова запросить экран входа в систему.
Я предлагаю, чтобы ваше приложение автоматически обновляло токен в фоновом режиме.
Комментарии:
1. Спасибо, я думаю, что запрос на вход в систему каждый раз, когда вы открываете приложение, раздражает и вызывает ужасный пользовательский опыт, рассмотрит возможность обновления в фоновом режиме.
Ответ №2:
Вы можете сохранить exp
(время истечения срока действия токена) из раздела полезной нагрузки в своей БД, попробуйте проверить перед запуском нового вызова, если срок его действия истекает, тогда вы можете использовать /customers/auth
ресурс для получения нового токена. Вы должны включить текущий токен в заголовок Authentication:Bearer
запроса и указать тип клиента как "type":"refresh"
.