Linkedin Javascript SDK 访问令牌

Linked in Javascript SDK access token

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

我想在不将用户重定向到 Linked In 的情况下实现这一点,而是通过弹出窗口 window。

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

目前,通过 Javascript SDK,我可以在没有重定向的情况下让用户登录,并收到一个 oauth_token,然后我 post 将其发送给后端。这是我的代码:

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 中的类似内容吗?

我有同样的问题,使用 Google 和 Facebook SDK 我可以得到 access_token 但 linkedin SDK auth_token 不工作。我认为我们需要 access_token 但不知道如何使用 linkedin SDK 获得它。

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