带有spring-security-oauth2-client的LinkedIn OAuth2无法正常工作,请求accessToken时缺少client_id

时间:2018-08-02 11:39:35

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

spring-security-oauth2-client提供了轻松将外部服务与我的应用程序集成的方法。它具有对Google,Facebook,Github和Okta的身份验证的内置支持,而且还支持其他oauth2提供程序的注册。在这种情况下,我尝试将LinkedIn添加为提供程序,这种方法在我的应用程序尝试向https://www.linkedin.com/oauth/v2/accessToken发出POST请求之前一直有效。

要使此请求成功,需要将 client_id client_secret 添加为参数。但这不是spring-security-oauth2-client的构建方式,因为所有其他提供程序都需要 client_id client_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可以通过任何可能的方式允许对https://www.linkedin.com/oauth/v2/accessToken的POST请求的标头中的 client_id client_secret

1 个答案:

答案 0 :(得分:0)

由于设置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"