繁体   English   中英

检索LinkedIn访问令牌

[英]Retrieve LinkedIn access token

我正在尝试获取linkedIn oauth2访问令牌,但我坚持向https://www.linkedin.com/oauth/v2/accessToken发出最后请求

const body = new URLSearchParams([
  ['grant_type', 'authorization_code'],
  ['code', code],
  ['redirect_uri', 'http://localhost:3000/'],
  ['client_id', CLIENT_ID],
  ['client_secret', CLIENT_SECRET]
]);
const headers = new Headers({'Content-Type': 'x-www-form-urlencoded'}); 

window.fetch('https://www.linkedin.com/oauth/v2/accessToken', method: 'POST',body, headers)
.then(response => response.json())
.then(data => {
// rest of code
})

LinkedIn返回

Fetch API无法加载https://www.linkedin.com/oauth/v2/accessToken。 对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此不允许来源'http:// localhost:3000'访问。 响应具有HTTP状态代码404.如果不透明响应满足您的需要,请将请求的模式设置为“no-cors”以获取禁用CORS的资源。

所以我试图以'无人'模式提出请求。 我有200但是我无法得到响应体,状态为0,body为null并且response.json()抛出SyntaxError:意外的输入结束。

我发现了您的问题, Content-Type标头值不正确。

它的意思是

const headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded'});

const headers = new Headers({'Content-Type': 'x-www-form-urlencoded'});

DOCS: https//developer.linkedin.com/docs/oauth2 (第3步)

对于任何遇到此问题的人。 我们通过将数据从LinkedIn(代码)传递到我们的后端来解决它。 后端无需发送任何预检OPTIONS请求,并且可以毫无问题地获得访问令牌。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM