gpt4 book ai didi

spring - 使用 Linkedin 的 Spring Social 将 LinkedIn JS API token 交换为 REST token

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:21:52 25 4
gpt4 key购买 nike

我正在尝试执行以下操作:

让用户使用 Linkedin JSAPI 通过 Linkedin 进行身份验证和授权,然后获取身份验证详细信息并将它们发送到我的服务器以通过服务器端通信获取用户配置文件。

我得到了 Linkedin 按钮设置,得到了一直到我的服务器的授权 cookie(如 here 所述),并且能够验证 token 确实是用我的 key 正确签名的。

现在我被困在我应该获取从 JSAPI 获得的 token 并将其交换为访问 token 的位置。

这是我正在使用的代码,如前所述,它使用 Linkedin 的 Spring Social,但它不起作用,因为它会抛出 401 未经授权的响应:

    LinkedInConnectionFactory connectionFactory = 
new LinkedInConnectionFactory(myLinkedinId, myLinkedinSecret);
OAuth1Operations oauthOperations = connectionFactory.getOAuthOperations();
AuthorizedRequestToken art = new AuthorizedRequestToken(new OAuthToken(codeIGotFromJSAPI, aSecretKey), whereDoIGetThisSignature);
OAuthToken accessGrant = oauthOperations.exchangeForAccessToken(art, null);
if (accessGrant == null) return null;
Connection<LinkedIn> connection = connectionFactory.createConnection(accessGrant);
if (connection != null) {
LinkedIn linkedin = connection.getApi();
return linkedin.profileOperations().getUserProfile();
}

我真正感到困惑的是 AuthorizedRequestToken 对象。 codeIGotFromJSAPI 部分我认为很简单,它只是 access_token,但是 aSecretKey 呢,它只是我的 linkedin key 吗? whereDoIGetThisSignature 怎么样,我该如何创建那个?我是否使用与我用来验证 linkedin 响应并使用我的 secret linkedin key 散列 access_token 相同的散列方法?在 linkedin 页面中,它说:

You need to pass four values as query parameters:

  1. oauth_consumer_key, to identify yourself
  2. xoauth_oauth2_access_token parameter, set to the value of the access_token field in the cookie.
  3. signature_method set to HMAC-SHA1
  4. signature, calculated as described in the OAuth 1.0a spec

所以 (1) 是由我想的连接自动完成的,(2) 是我提供的访问 token ,但是我该怎么做 (3) 和 (4)?

假设我在 Linkedin 设置的 JSAPI cookie 中获得了以下数据:

{
"signature_method":"HMAC-SHA1",
"signature_order": ["access_token", "member_id"],
"access_token":"AD2dpVe1tOclAsNYsCri4nOatfstw7ZnMzWP",
"signature":"73f948524c6d1c07b5c554f6fc62d824eac68fee",
"member_id":"vvUNSej47H"
"signature_version": 1
}

我需要用它做什么才能完成下一步?

最佳答案

使用以下过程:

  • 读取cookie
  • "signature":"..." 转换为 &signature=...
  • "signature_method":"HMAC-SHA1" 转换为 &signature_method=HMAC-SHA1
  • "member_id":"..." 转换为 &oauth_customer_key=...
  • "access_token":"..." 转换为 &xoauth_oauth2_access_token=...
  • 将所有附加到 LinkedIn url 加上 ?

关于spring - 使用 Linkedin 的 Spring Social 将 LinkedIn JS API token 交换为 REST token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16618767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com