LinkedIn 验证用户身份验证令牌服务器端

LinkedIn verify user auth token server side

经过 1 天的研究,我发现了以下问题。我正在使用 ember.js 构建一个网络应用程序,目前我正在使用 linkedin javascript sdk 实现 LinkedIn 登录。我遇到的问题是,在我收到用户信息(令牌、电子邮件、名字等)后,我需要在服务器端验证此令牌才能盛大 session。不幸的是,文档对我来说不是很清楚。我可以使用 IN.ENV.auth 访问令牌(或某种令牌),但是当我尝试从它们中验证一个时,我收到 "invalid request"。在服务器端,我使用的是节点,示例代码如下所示:

var request = require('request');
var options = {
    url: 'https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code=TOKEN_RECIEVED_THROUGH_IN.ENV.auth&redirect_uri=my-domain&client_id=API_CLIENT_ID&client_secret=API_SECRET_KEY'
};
request(options,function(err,res,body){
    console.log(body);
});

sdk的响应是这样的:

anonymous_expires_in: 1800
anonymous_token: "4u948tas123asfK9DJx9HFYJgcsBFlhIFu93gG"
api_key: "API_KEY"
is_set_client_auth_cookie: false
member_id: "4a13sdasFeD"
oauth_expires_in: 1800
oauth_token: "66Dy9V123lL7H823ddl-5L-KVmg184k0dhAaS"

提前致谢。

从 JS SDK 和服务器端 OAuth 授予的 LinkedIn 授权令牌不同。

LinkedIn 的开发者网站上记录了一个过程,解释了如何将 JS 令牌交换为 REST API/server-side 令牌:https://developer-programs.linkedin.com/documents/exchange-jsapi-tokens-rest-api-oauth-tokens

似乎只要将 header oauth_token 添加到 GET 请求就可以了:

GET /v1/people/~:(id,firstName,lastName,siteStandardProfileRequest,picture-url,email-address)?format=json HTTP/1.1
Host: api.linkedin.com
oauth_token: your-token-here

P.S。但我不确定它是否会持续工作,因为我还没有阅读文档

对于需要通过 Postman 或其他方式检查令牌有效性的人...

您可以通过请求具有下一个参数来实现此目的...

示例:

Method GET:
https://api.linkedin.com/v1/people/~?format=json

Headers: 
Authorization Bearer "here you add your access token"
Content-Type application/json
x-li-src msdk