4

我有一个 grails 应用程序,我希望用户授予我访问他/她的 LinkedIn 帐户的权限,以获取信息并以不同的方式显示它。

我能够做到以下几点:

  1. 获取授权码
  2. 使用该授权码获取访问令牌
  3. 我将该访问令牌与到期日期一起存储在我的用户实体中。
  4. 当到期日期在从今天起的 X 天内刷新该访问令牌。

现在我遇到的问题是我希望用户撤销或使该令牌无效,以便其他人可以使用相同的计算机和会话并登录到不同的 LinkedIn 帐户。

  • 这可能吗?
  • 如果不?有没有办法删除 LinkedIn cookie?这样用户的 LinkedIn 会话就完成了,并且通过从 LinkedIn 注销,他们将不得不再次授予对我的应用程序的访问权限。

以供参考:

  • 我正在使用 Grails 2.1.1
  • 没有使用 oauth 进行身份验证,我只是使用 Groovy 中的 HTTPClient 来执行简单明了的 GET 和 POST 请求。

提前非常感谢!

4

2 回答 2

2

我已设法通过此调用撤销 API v2 上的令牌:

curl --request POST \
  --url https://www.linkedin.com/oauth/v2/revoke \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data client_id=CLIENT_ID_HERE \
  --data client_secret=CLIENT_SECRET_HERE \
  --data token=YOUR_TOKEN_HERE
于 2020-11-20T18:44:02.483 回答
1

最简单的做法就是从存储中删除访问令牌。这样您就无法再访问该帐户。当 LinkedIn 使用 OAuth 1.0a 时,他们有一个 Invalidate 调用,这将使访问令牌无效。但是当他们迁移到 OAuth 2.0 时,这种情况就消失了。

于 2013-04-02T15:14:53.120 回答