Как получить обновленный токен во встроенном приложении Linnworks? - PullRequest
0 голосов
/ 30 января 2019

Я подумал, что попробую опубликовать свою проблему здесь, учитывая несуществующую поддержку, которую предоставляет Linnworks.

Я создал частное встроенное приложение в Linnworks, которое отображает заказы в формате электронной таблицы.Приложение построено с использованием Vue.js и использует axios для извлечения данных из API Linnworks.Все работает так, как должно быть здесь, за исключением того, что я возвращаю только 100 заказов за раз, чтобы все было быстро.

Я добавил кнопку «загрузить больше заказов», которая добавляет дополнительные 100 заказов кконец листа, но после периода бездействия это вызывает «401 несанкционированную ошибку», поскольку срок действия токена истек.

Поскольку это встроенное приложение, Linnworks сохраняет токен в src iframe, когдаприложение инициализируется, поэтому по истечении срока действия оно не обновляется физически системой.

<iframe src="https://example.com/sheet.html?token=9b11e8ff-4791-aca5-b58d-f6da84e996a6"></iframe>

Есть ли способ получить обновленный токен без перезагрузки всего приложения?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Я получил следующий ответ от Linnworks, в котором исправлена ​​проблема:

После дальнейшего исследования это, по-видимому, связано с проверкой связи вызова AuthorizeByApplication.Чтобы уменьшить риск получения 401 несанкционированного «токена истек. Пожалуйста, подтвердите пользователя», рекомендуется, чтобы при открытии приложения вызывался AuthorizeByApplication и сохранялся ответ.

После сеансаПосле создания AuthorizeByApplication необходимо вызвать , а не .Токен, возвращенный в этом сеансе, имеет TTL 30 минут.Если этот токен используется в последующем вызове, TTL токена сбрасывается обратно на 30 минут.Поэтому, как предлагается в ответе на ваш вопрос Stackoverflow, краткий вызов «api / Main / Ping» сбросит 30-минутный TTL с небольшим влиянием на производительность ваших приложений.

Чтобы предотвратить использование приложений с истекшим сроком действияТокены:

  1. После запуска приложения вызовите AuthorizeByApplication и сохраните ответ сеанса.
  2. Чтобы предотвратить окончание сеанса, вызовите «api / Main / Ping», используя сохраненный токен сеанса, чтобы сбросить TTL сохраненного сеанса.
  3. Для любых вызовов, сделанных приложением, используйте исходный сохраненный токен сеанса.
0 голосов
/ 31 января 2019

Токены имеют TTL по умолчанию, равный 30 минутам, просто опросите API простым методом, таким как /api/Main/Ping, чтобы сохранить токен / сеанс активным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...