【发布时间】:2018-01-16 19:19:36
【问题描述】:
目前,我的 Facebook 和 LinkedIn Oauth2 流程都可以正常工作。因为在某些情况下我不希望用户重定向到另一个页面,所以我使用运行良好的 Facebook JS SDK,检索访问令牌并将其发送到服务器,在该服务器上我通过 REST 调用检索用户数据。
不幸的是,我在使用 LinkedIn JS SDK 时没有成功。官方文档在这方面根本没有帮助:https://developer.linkedin.com/docs/getting-started-js-sdk。
我在服务器中检索用户数据,因为在客户端很容易伪造假数据并将其发送到服务器,因此不能选择客户端解决方案。
如果我尝试在 REST API 中使用我在 js 中获得的令牌,我会得到 Invalid access token. (401)
这里有几个未解决的问题在 SO 中没有任何响应(或有用的响应):
2015-08-03 - 没有回应: Javascript: Linkedin Access TOken
2016-05-29 - 没有回应: can I get access token through LinknedIn JS SDK?
2016-08-31 - 没有有用的响应(在前端检索数据): How to Get Access Token Using LinkedIn API JavaScript SDK
2017-06-30 - 没有有用的回复: LinkedIn OAuth token with Javascript SDK
在下面的问题中,有一条评论说明了我的猜测:
[...] 老实说,我认为 JS API 像这样完全没用 因为如果你不能验证/使用令牌服务器端你基本上 无法信任任何信息。
2015-07-22 - 没有有用的响应(在前端检索数据): get linkedin Access Token with JavaScript SDK
有一些关于用 REST API OAuth 令牌交换 Javascript API 令牌的信息,但在参考资料中我发现链接已损坏(根据复杂性,这样做是不切实际的,而不是使用直接使用令牌,就像在 Facebook JS SDK 中一样):
http://developer.linkedin.com/documents/exchange-jsapi-tokens-rest-api-oauth-tokens https://developer-programs.linkedin.com/documents/exchange-jsapi-tokens-rest-api-oauth-tokens
所以,我想知道是否有某种方法可以使用 JS SDK 登录 LinkedIn 并使用 REST 调用在后端检索用户数据(就像我在 Oauth2 flow),希望有官方文档。
【问题讨论】:
-
你有没有找到解决这个问题的方法?我有完全相同的问题。
-
@justADreamer 查看我标记为已接受的答案(来自@dbeja)。我现在调用它而不是调用
https://api.linkedin.com/v1/people/~[...]?oauth2_access_token=[token]&format=json,而是在标题https://api.linkedin.com/v1/people/~[...]?format=json+Headers { 'oauth_token': [token] }中传递 oauth 令牌。 -
是的。但是我仍然需要以某种方式获取访问令牌,因为我的后端严重依赖于使用长期访问令牌:-|我认为我无法用访问令牌交换我的 oauth 令牌。
-
@justADreamer 在我的情况下,我只使用令牌来检索用户数据(尤其是 id 和电子邮件),因为这些是不应该直接从前端传递的重要数据。我的用例中不需要长期存在的令牌,我也没有使用过它们(除非我在不知道它们长期存在的情况下使用它们:P),所以我真的无法帮助你。