Linkedin Javascript SDK catch过期令牌

时间:2017-08-16 12:48:25

标签: javascript oauth sdk linkedin

我们使用Linkedin让我们的会员“登录”访问我们的后端。我们只使用Javascript SDK,因为我们的网站非常简单。我们有很多用户在6个月后回来并收到以下错误,而不是看到“使用Linkedin登录”按钮:

  

[未授权]。过期的访问令牌。时间戳:1501736450333

由于我们没有后端在60天到期之前批量续订令牌,因此我们成员的简单解决方案是先退出,查看“登录”按钮,然后再次登录 - 我们知道重新验证令牌。

问题:我不知道如何“捕获”错误或识别用户何时使用Linkenin的Javascript SDK过期令牌。

<script type="text/javascript" src="//platform.linkedin.com/in.js">
    api_key:   XXXXXXXXXXXXX
    onLoad:    li_OnFrameworkLoad
    authorize: true
</script>  

...

<script type="text/javascript">
function li_OnFrameworkLoad() {
  IN.Event.on(IN, "auth", li_OnAuth);
}
</script>

我尝试过使用:

  if (!IN.User.isAuthorized()) {
    li_Logout();
  }

方法,但不起作用

IN.Event.on(IN, "auth", li_OnAuth);

会在未先调用“li_OnAuth”回调的情况下触发“[未授权] ...”消息。

再现:如果您知道如何触发“[未授权]。过期的访问令牌,那么我在本地计算机上似乎无法重现它。” “请告诉我。”

解决方案?:最近的一种解决方案是使用:

<script type="text/javascript">
window.onerror = function(e) {
  if (e == 'Script error.') {
    console.log('There is a chace IN.init failed.');
  }
}
</script>

但是我对“ window.onerror ”并不是很熟悉,如果令牌过期等,我不确定Linkedin Javascript SDK是否会触发错误。基本上我只需要抓住错误并调用我的“ li_logout(); ”函数从Linkedin注销用户并刷新页面。

非常感谢,任何智慧都会受到高度赞赏。

0 个答案:

没有答案