【问题标题】:LinkedIn OAuth2 with spring-security-oauth2-client not working, client_id missing when requesting accessToken带有 spring-security-oauth2-client 的 LinkedIn OAuth2 无法正常工作,请求 accessToken 时缺少 client_id
【发布时间】:2019-01-10 04:06:38
【问题描述】:

spring-security-oauth2-client 提供了将外部服务轻松集成到我的应用程序的方法。它内置支持通过 Google、Facebook、Github 和 Okta 进行身份验证,但也支持注册其他 oauth2 提供者。在这种情况下,我正在尝试将 LinkedIn 添加为提供程序,这在我的应用程序尝试向 https://www.linkedin.com/oauth/v2/accessToken 发出 POST 请求之前效果很好。

要使此请求成功,需要将 client_idclient_secret 添加为 parameters。但这不是 spring-security-oauth2-client 的构建方式,因为所有其他提供程序都需要将 client_idclient_secret 作为编码字符串添加到请求标头

因为这个 LinkedIn 返回一个 401,说它缺少我的 client_id。您可以在下方查看我对 LinkedIn 提供商的配置:

spring.security.oauth2.client.registration.linkedin.provider=linkedin
spring.security.oauth2.client.registration.linkedin.client-id=MYID
spring.security.oauth2.client.registration.linkedin.client-secret=MYSECRET
spring.security.oauth2.client.registration.linkedin.scope=MYSCOPES
spring.security.oauth2.client.registration.linkedin.client-name=linkedin login
spring.security.oauth2.client.registration.linkedin.redirect-uri-template=http://MYWEBSITE/login/oauth2/code/linkedin
spring.security.oauth2.client.registration.linkedin.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.linkedin.client-authentication-method=form

spring.security.oauth2.client.provider.linkedin.authorization-uri=https://www.linkedin.com/oauth/v2/authorization
spring.security.oauth2.client.provider.linkedin.token-uri=https://www.linkedin.com/oauth/v2/accessToken
spring.security.oauth2.client.provider.linkedin.user-info-uri=https://api.linkedin.com/v2/me

使用 Github 的凭据和 url 尝试此配置导致我的网站成功接收来自 Github 的 accessToken。

有没有办法配置这个包以与 LinkedIn 一起使用?或者 LinkedIn 是否有任何可能的方式允许 client_idclient_secret 在 POST 请求的标头中发送到https://www.linkedin.com/oauth/v2/accessToken

【问题讨论】:

    标签: spring-boot authentication oauth-2.0 linkedin spring-security-oauth2


    【解决方案1】:

    由于设置spring.security.oauth2.client.registration.linkedin.client-authentication-method=form,我无法向LinkedIn 发出正确的请求。我的 spring-security-oauth2-client (5.0.6.RELEASE) 版本不支持设置 form。将其更改为post 后,它就像一个魅力,但后来我遇到了下一个问题,我将在另一个问题中询问。

    我新遇到的烦恼的问题:LinkedIn OAuth2 /accessToken response not return a "token_type"

    【讨论】:

      猜你喜欢
      • 2015-11-14
      • 2019-09-12
      • 2013-11-12
      • 2015-07-15
      • 2015-11-23
      • 2015-02-08
      • 2016-07-19
      • 2016-02-22
      • 2018-06-27
      相关资源
      最近更新 更多