6
votes

I'm trying to get the Linkedin access token by Omniauth, using Devise, Omniauth and omniauth-linkedin-oauth-2. Either with facebook and twitter, I can get the access token, but when I try it with linkedin, I'm getting the following error in the omniauth callback:

ERROR -- omniauth: (linkedin) Authentication failure! invalid_credentials: OAuth2::Error, invalid_request: missing required parameters, includes an invalid parameter value, parameter more than once. : Unable to retrieve access token : appId or redirect uri does not match authorization code or authorization code expired
{"error_description":"missing required parameters, includes an invalid parameter value, parameter more than once. : Unable to retrieve access token : appId or redirect uri does not match authorization code or authorization code expired","error":"invalid_request"}

The linkedin app id and secret authentication is working, as I'm getting the callback on omniauth, the thing is I can't realise what the problem is here.

Devise config below:

  config.omniauth :linkedin, ENV['LINKEDIN_APP_ID'], ENV['LINKEDIN_APP_SECRET']

Any ideas on what could be happening?

1
Are you trying this in development or production? In my experience you need to have two Linkedin apps - one that has the exact localhost:portnumber for development and another for production use. - stef
In development. I have http://localhost:3000/users/auth/linkedin/callback in the Authorized Redirect URLs of the Linkedin app - Juan Rodriguez
I had trouble with that - have a look at the docs. I think it was something about it being comma-separated versus linebreak-separated. - stef
Just looked and it's comma-separated, but the UI makes you think you should put each one on a separate line. Is that it? - stef
@stef I updated the question with comma-separated, I tried it, and I'm getting the same failure message :( - Juan Rodriguez

1 Answers

10
votes

I had the same problem and I found a way to resolve that. In your Gemfile put this:

#Contains a generic OAuth2 strategy for OmniAuth
gem 'omniauth-oauth2', '~> 1.3.1'

And finally do:

bundle update

I think it should work.

More info in: https://github.com/intridea/omniauth-oauth2/issues/81