在Javascript SDK访问令牌

时间:2018-03-02 15:50:32

标签: oauth oauth-2.0 linkedin linkedin-api linkedin-jsapi

我在我的网站上使用LinkedIn Javascript SDK,以允许用户通过Linked In注册和登录。

我希望在不将用户重定向到Linked In的情况下实现此目的,而是通过弹出窗口实现。

问题是,我不确定如何安全地获取访问令牌,然后我可以使用它来获取用户个人资料并创建帐户。

目前,通过Javascript SDK,我可以在不重定向的情况下登录用户,并收到oauth_token,然后由后端发布。我的这是我的代码:

IN.User.authorize(function(){
    $.ajax({
      type: 'POST',
      url: '/auth/li/'+IN.ENV.auth.oauth_token,
    });
});

这次成功将令牌发送到我的服务器,但是如何使用它来获取访问令牌以便在后端使用?

我尝试使用带有

的LinkedIn API将其简单地转换为一个

https://www.linkedin.com/oauth/v2/accessToken

但是我收到了错误

Unable to retrieve access token: appid/redirect uri/code verifier does not match authorization code. Or authorization code expired.

我理解错误,因为javascript SDK没有重定向URI。

使用Facebook SDK / API,通过Javascript API成功授权后,会存储使用我的应用秘密加密的cookie,我的后​​端可以解密并读取它,然后最终创建一个帐户。

在LinkedIn中是否存在我错过的内容?

2 个答案:

答案 0 :(得分:0)

我有同样的问题,谷歌和Facebook SDK我可以获得access_token,但是SDK SDK auth_token无效。我认为我们需要access_token但不知道如何通过linkedin SDK获得它。

答案 1 :(得分:0)

我想出了一个解决方案。我最终没有使用javascript API。我所做的是在我的服务器上生成登录URL并通过AJAX检索它。然后我创建了一个javascript弹出窗口,并将其对准登录URL。一个用户进行身份验证,linkedin重定向到弹出窗口中我选择的重定向URL,然后我可以在我身边进行身份验证(并关闭弹出窗口)。