Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Linnworks嵌入式应用程序中获取刷新的令牌?_Javascript_Vue.js_Token - Fatal编程技术网

Javascript 如何在Linnworks嵌入式应用程序中获取刷新的令牌?

Javascript 如何在Linnworks嵌入式应用程序中获取刷新的令牌?,javascript,vue.js,token,Javascript,Vue.js,Token,考虑到Linnworks提供的不存在的支持,我想我应该尝试在这里发布我的问题 我在Linnworks中创建了一个私有嵌入式应用程序,它以电子表格格式显示订单。该应用程序使用Vue.js构建,并使用axios从Linnworks API中提取数据。这里的一切都正常运转,只是我一次只回100份订单,以保持速度 我添加了一个“加载更多订单”按钮,它在工作表的末尾追加了100个订单,但在一段时间的不活动后,这会导致“401未授权错误”,因为令牌已过期 由于它是一个嵌入式应用程序,Linnworks在初始

考虑到Linnworks提供的不存在的支持,我想我应该尝试在这里发布我的问题

我在Linnworks中创建了一个私有嵌入式应用程序,它以电子表格格式显示订单。该应用程序使用Vue.js构建,并使用axios从Linnworks API中提取数据。这里的一切都正常运转,只是我一次只回100份订单,以保持速度

我添加了一个“加载更多订单”按钮,它在工作表的末尾追加了100个订单,但在一段时间的不活动后,这会导致“401未授权错误”,因为令牌已过期

由于它是一个嵌入式应用程序,Linnworks在初始化应用程序时将令牌存储在iframe的src中,因此当它过期时,系统不会对其进行物理刷新



有没有一种方法可以在不重新加载整个应用程序的情况下获取刷新的令牌?

令牌的默认TTL为30分钟,只需使用类似
/API/Main/Ping
的简单方法轮询API即可保持令牌/会话处于活动状态

令牌的默认TTL为30分钟,只需使用像
/API/Main/Ping
这样的简单方法轮询API,以保持您的令牌/会话处于活动状态

我从Linnworks获得以下响应,解决了此问题:

经过进一步调查,这似乎是由于AuthorizeByApplication调用的ping导致的。为了帮助降低被退回401未经授权的“令牌已过期。请重新验证用户”的风险,建议在打开应用程序时,调用AuthorizeByApplication并保存响应

创建会话后,应再次调用AuthorizeByApplication而不是。此会话中返回的令牌的TTL为30分钟。如果在另一次呼叫中使用此令牌,则令牌的TTL将重置回30分钟。因此,正如Stackoverflow问题的回答中所建议的,短暂调用“api/Main/Ping”将重置30分钟的TTL,而对应用程序性能的影响很小

防止应用程序使用过期令牌:

  • 启动应用程序后,调用AuthorizeByApplication并保存会话响应
  • 要防止会话结束,请使用保存的会话令牌调用“api/Main/Ping”重置保存会话的TTL
  • 对于应用程序进行的任何调用,请使用原始保存的会话令牌

  • 我从Linnworks得到以下回复,解决了问题:

    经过进一步调查,这似乎是由于AuthorizeByApplication调用的ping导致的。为了帮助降低被退回401未经授权的“令牌已过期。请重新验证用户”的风险,建议在打开应用程序时,调用AuthorizeByApplication并保存响应

    创建会话后,应再次调用AuthorizeByApplication而不是。此会话中返回的令牌的TTL为30分钟。如果在另一次呼叫中使用此令牌,则令牌的TTL将重置回30分钟。因此,正如Stackoverflow问题的回答中所建议的,短暂调用“api/Main/Ping”将重置30分钟的TTL,而对应用程序性能的影响很小

    防止应用程序使用过期令牌:

  • 启动应用程序后,调用AuthorizeByApplication并保存会话响应
  • 要防止会话结束,请使用保存的会话令牌调用“api/Main/Ping”重置保存会话的TTL
  • 对于应用程序进行的任何调用,请使用原始保存的会话令牌