首页 文章

使用LinkedIn JS SDK检索访问令牌以在后端使用

提问于
浏览
1

目前我有Facebook和LinkedIn Oauth2流程正常工作 . 因为在某些情况下我不希望用户重定向到另一个页面,我使用工作正常的Facebook JS SDK,检索访问令牌并将其发送到我通过REST调用检索用户数据的服务器 .

不幸的是,在这方面我完全没有帮助: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


所以,我想知道是否 there is some way to login with LinkedIn using the JS SDK and retrieve the user data in the back-end using REST calls (就像我在Oauth2流程中所做的那样),希望有官方文档 .

2 回答

  • 2

    我遇到了同样的问题,我发现使用JS令牌的唯一方法是添加标头oauth_token而不是Authorization Bearer标头:

    POST https://api.linkedin.com/v1/people/~:(id,firstName,lastName,picture-url,email-address)?format=json
    Headers {
      'oauth_token': JS_TOKEN
    }
    

    JS_TOKEN我正在阅读 IN.ENV.auth.oauth_token 的前端 .

  • 0

    我一直在努力解决同样的问题,这是我解决它的方式(不使用JS SDK):
    Linkedin data flow

    步骤1:您将用户发送到LinkedIn登录页面,在redirect_uri param中使用 endpoints 来处理与LinkedIn相关的所有逻辑 .

    步骤2:当用户完成登录后,Linkedin将向该 endpoints 发送GET请求,此请求将具有“授权令牌”,此令牌只是一个临时令牌,它不允许您获取用户的数据 .

    第3步:使用您刚刚收到的授权令牌,并向Linkedin发送帖子请求

    第4步:Linkedin将向您发送一个访问令牌(这是您正在寻找的那个),现在您可以请求您想要的所有信息

    第5步:将用户重定向回您的网络应用 .

    请求的结构以及锚标记参数可在此处获得:https://developer.linkedin.com/docs/oauth2

相关问题