当前位置: 首页 > 知识库问答 >
问题:

Spring-Social-领英应用令牌(无需用户身份验证)

曹原
2023-03-14

我希望能够将spring社交链接与应用程序令牌一起使用,就像我可以使用spring社交脸书的变通方法一样(在spring社交面书中使用应用程序访问令牌来查询公共页面)。

我的应用程序只需要查询公共页面,所以不需要针对特定用户进行身份验证:例如,我会查询http://www.linkedin.com/company/google公司的公共页面

我已经阅读了很多留档,但我对目前的情况有点困惑。我认为你甚至不能通过构造函数使用OAuth1凭据实例化LinkedInTemplate,而且doco似乎已经过时(http://docs.spring.io/spring-social-linkedin/docs/1.0.x/reference/htmlsingle/#apis)。

有人知道LinkedIn是否有能力在没有< code>redirect_uri的情况下进行服务器集成(显然只能访问与公共信息相关的API的子集)?

共有2个答案

亢正德
2023-03-14

看看这个测试的来源https://github . com/spring-projects/spring-social-LinkedIn/blob/master/spring-social-LinkedIn/src/test/Java/org/spring framework/social/LinkedIn/API/impl/companytemplatetest . Java:

    mockServer.expect(requestTo(CompanyTemplate.COMPANY_URL.replaceFirst("\\{id\\}", "/1337").replaceFirst("\\{filter\\}", "") + "&oauth2_access_token=ACCESS_TOKEN")).andExpect(method(GET))
        .andRespond(withSuccess(new ClassPathResource("company.json", getClass()), MediaType.APPLICATION_JSON));
    Company company = linkedIn.companyOperations().getCompany(1337);

    assertEquals(1337, company.getId());
    assertEquals("http://feeds.feedburner.com/LinkedInBlog", company.getBlogRssUrl());

这是你要找的吗?

孟乐逸
2023-03-14

显然,当推送SSLI 1.0.0.RELEASE时,新文档没有正确发布。谢谢你的提醒…我会设法把它修好的。

与此同时...根据 https://developer.linkedin.com/documents/company-lookup-api-and-fields LinkedIn 的 API 文档,所有对公司数据的请求都必须使用访问令牌代表用户进行经过身份验证的调用。因此,您必须先获得用户授权,然后才能进行此类调用。我相信无论你使用的是 OAuth 1.0a 还是 OAuth 2,都是如此。

Spring Social LinkedIn假定您将使用OAuth 2授权,这也是LinkedIn期望大多数应用程序将做的事情(参见https://developer.linkedin.com/documents/authentication)。因此,在实例化LinkedInTemplate时,您需要向其提供的只是一个有效的访问令牌。然而,如何获得该访问令牌是另一回事。

Spring Social的ConnectController可以帮助您完成OAuth舞蹈。但听起来您似乎想知道如何在不涉及用户授权的情况下获取应用程序的访问令牌。据我所知(尽管我很乐意得到更正),LinkedIn不支持OAuth 2客户端授权。他们确实在应用程序的注册页面上为您提供了一个访问令牌,但据我所知,这是一个OAuth 1.0a令牌,不适用于Spring Social。尽管如此,该令牌仍然是用户令牌……它只是为您授权的令牌。

因此,如果公司请求需要授权代表用户(根据文档)进行操作的访问令牌,那么我认为您别无选择,只能通过用户授权获取访问令牌。我想你可以授权自己并将该令牌用于您的应用程序,但这可能是对令牌的滥用......继续操作的风险由您自行承担。

 类似资料:
  • null 我的自定义rest筛选器: 上面的内容实际上会导致应用程序启动时出现一个错误:有人能告诉我如何最好地执行此操作吗?pre_auth筛选器是执行此操作的最好方法吗? 编辑 使用Spring-security实现解决方案 希望它能帮助其他人…

  • } 要获取令牌,我执行以下步骤: > 使用浏览器转到:http://localhost:9000/oauth/authorize?response_type=code&client_id=test&redirect_uri=http%3a%2f%2flocalhost%3a8080%2f&scope=write 首先,它将我重定向到一个登录表单,在那里我输入用户名和密码:admin abc 请帮我

  • 在传统的基于cookie/JSESSION的身份验证的同时,是否可以使用基于令牌的(无状态)身份验证? 应用程序已经有一个现有的Spring MVC+Thymeleaf实现,用作管理/超级用户门户。当你登录时,你会得到一个JessionID。我们需要使用Jersey(JAX-RS)创建一个RESTful API以供客户端使用。要求是无状态的。本质上,我们仍然需要Spring MVC+Thymele

  • 我知道有些人会发表评论,比如这篇文章重复了很多问题,但是我已经尝试了很多方法来在领英Oauth中实现访问令牌。解释我所尝试的。 1)我正在关注它的官方文档LinkedIn Oauth2 2) 我已成功从步骤 2 获取授权代码,并将该代码传递给步骤 3,以交换身份验证代码以获取访问令牌。但是我收到以下错误{“error_description”:“缺少必需参数,包含无效的参数值,参数不止一次。 :无

  • 我有一个LaravelAPI(实际上是LumenAPI)服务于VueJS前端。Vue应用程序允许用户登录到谷歌。然后将Google令牌发送回Lumen API,后者使用Google验证令牌,然后验证电子邮件地址是否为有效用户。然后它生成一个令牌,与用户一起存储在数据库中,并返回用户对象。 我没有使用Passport或jwt auth之类的东西。那么现在,我如何使用默认的Auth中间件来验证(现在已