我正在使用Ember.js和Node。我已经设置了基于json web token的身份验证,现在我正在尝试使用LinkedIn的REST API来获取用户配置文件的信息。
我能够将用户重定向到LinkedIn授权代码端点(本指南中的第2步:https://developer.linkedin.com/docs/oauth2),但我仍然遇到第3步(访问令牌的Exchange授权代码)。当我使用正确的参数发出POST请求时,无论我如何尝试发出请求,都会收到401 unauthorized_client错误。
我直接从我的Node服务器发出请求,并使用请求模块。我已经尝试将params包括为查询参数,并作为正文的一部分。我已经尝试调整标题和网址编码,但似乎没有任何改变401错误。
根据指南,这是我需要做的电话:
POST /uas/oauth2/accessToken HTTP/1.1
Host: www.linkedin.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=987654321&redirect_uri=https%3A%2F%2Fwww.myapp.com%2Fauth%2Flinkedin&client_id=123456789&client_secret=shhdonottell
答案 0 :(得分:0)
如果POSTing
是正确的参数,则不会发生这种情况。你可以用另一种方式尝试它。使用您在步骤2中收到的授权码,使用基于请求的服务,例如POSTMAN
,然后尝试再次获取响应。如果您使用它,则意味着在您提出请求时出现了一些错误。
确保正确提供标题。
即使在POSTMAN
服务之后,如果您收到未经授权的回复,请确认您的client_id
和client_secret
。
答案 1 :(得分:0)
请注意,对于两足式身份验证,grant_type应始终为“ client_credentials”。另外,您只需要提供client_id和client_secret作为参数,仅此而已。请参见sample in the LinkedIn documentation。看来您尝试执行三足身份验证请求。