不完整LinkedIn OAuth 2.0 访问令牌响应



我的问题是关于来自LinkedIn api 的 OAuth2 访问令牌响应。当我尝试获取此令牌时,我收到以下响应:

{"access_token":"...","expires_in":...}

但问题是,根据 OAuth2 文档(在 5.1 段落中(,至少应该还有一个必需的参数 - "token_type"。所以问题是:是否可以以某种方式对其进行自定义,以便LinkedIn API 将返回带有访问令牌响应的此参数,或者它只是偏离规则并且不会返回此参数?

提前谢谢。

我遇到了同样的问题。根据LinkedIn文档:

成功的访问令牌请求将返回包含以下字段的 JSON 对象:

  • access_token — 用户的访问令牌。 根据您对 API 使用条款的同意,此值必须保持安全。
  • expires_in — 从请求令牌到令牌过期之前的剩余秒数。 目前,所有访问令牌的有效期均为 60 天。

他们回应

{"access_token":"...","expires_in":...}

这违反了标准。

目前我正在使用 Spring Security 5.0.3,为了解决这个问题,我不得不修补一个类:

com.nimbusds.oauth2.sdk.token.BearerAccessToken

我不会发布整个班级,只会发布重要部分:

public static BearerAccessToken parse(final JSONObject jsonObject)
        throws ParseException {
        // Parse and verify type
        AccessTokenType tokenType;
        try {
            tokenType = new AccessTokenType(JSONObjectUtils.getString(jsonObject, "token_type"));
        } catch (ParseException ex) {
            tokenType = AccessTokenType.BEARER;
        }
        if (!tokenType.equals(AccessTokenType.BEARER))
            throw new ParseException("Token type must be "Bearer"");
        //...
}
我希望从

LinkedIn成员那里得到答案,因为他们在他们的网站上表示stackoverflow是提出此类问题的合适场所。但是由于他们没有答案,而且我没有找到有关此问题的任何相关信息,我相信这只是他们实施OAuth 2.0协议的方式。

相关内容

最新更新