是否可以在服务器上执行LinkedIn的访问令牌续订流程?



在Facebook的Graph API中,一旦我们对用户进行了初始身份验证,我们就可以直接与API交互(从服务器),以获得长期的页面访问令牌。此长期使用的页面访问令牌永远不会过期。(https://developers.facebook.com/docs/facebook-login/access-tokens/)

在阅读领英的文档时,似乎不可能获得具有无限期(不过期)访问令牌的访问令牌。它们似乎每60天过期一次。但是,这些访问令牌可以在60天之前刷新。

文档中不完全清楚的是,是否可以在没有客户端交互的情况下单独在服务器上执行访问令牌续订。文档的语言表明需要客户端(浏览器)的交互,但没有明确说明。

所以,我的问题是,在没有客户端(浏览器)交互的情况下,是否可以单独使用服务器续订领英访问令牌?

领英相关参考资料:https://developer.linkedin.com/documents/handling-errors-invalid-tokens

事实证明,如果没有linkedin用户登录linkedin,就无法刷新linkedin的访问令牌。请参阅领英员工在这里的第一条评论,其中明确指出"this refresh will only work if the user is still logged into LinkedIn (authenticated) and the current access token isn't expired. Otherwise, the user will be presented with the login dialog again."

我想,对于那些以前将linkedin访问令牌存储到数据库中以供以后使用的人来说,这是一个主要问题。

我在这里提到了几个链接,这些链接涉及刷新linkedin oauth2代币的问题(希望这能让所有正在解决同一问题的人都清楚地知道):

1) 只有当用户仍然登录到LinkedIn(经过身份验证)并且当前访问令牌未过期。否则,将向用户显示登录信息对话框。

2) 无法使用旧的身份验证令牌/机密刷新令牌。使用者需要登录linkedin才能刷新代币。我们使用这个流量以最佳方式保护我们的会员及其数据。

3) 刷新访问令牌非常简单,并且可以在没有授权的情况下进行对话框。换句话说,这是一个无缝的过程,不会影响您的应用程序的用户体验。只需让您的申请通过授权流,以便获取具有额外60天寿命的新访问令牌。当存在以下情况时:-用户仍在登录Linkedin.com-当前访问令牌未过期(在60寿命内)我们将自动将用户重定向回您的redirect_uri,而无需他们重新授权您的应用程序。如果它们不存在,我们将提示它们登录,然后重定向他们

4) 我们还对授权令牌的持续时间进行了标准化。以前,成员可以选择授予短至一天或长至永远的代币。现在全部令牌的长度为60天,您可以在成员返回应用程序时以一系列60天的滚动增量对其进行扩展。为了防止应用程序中出现糟糕的用户体验,请确保主动刷新令牌,并通过刷新流优雅地路由任何过期的令牌。

5) 只要用户登录到领英,并且其当前访问令牌尚未过期,您就可以在用户下次访问您的应用程序时获取一个使用寿命为60天的访问令牌。

我也有同样的问题,LinkedIn的文档和论坛帖子令人困惑,但我现在很确定,如果没有用户干预(即用户需要通过LinkedIn身份验证登录到您的应用程序以刷新令牌),就不可能以编程方式完成。

最新更新