LinkedIn supports only OAuth2. Migration between each type is fairly
simple since the same Key / Secret pair is used for both authentication types.
LinkedIn OAuth2 setup is similar to any other OAuth2 service. The auth flow is
explained on LinkedIn Developers docs. First you will need to register an
app att LinkedIn Developer Network.
Fill the application key and secret in your settings:
SOCIAL_AUTH_LINKEDIN_OAUTH2_KEY = ''
SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET = ''
Application scopes can be specified by:
SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE = [...]
Check the available options at LinkedIn Scopes (also called as permissions
by LinkedIn). If you want to request a user’s email address, you’ll need
specify that your application needs access to the email address use the
To request extra fields using LinkedIn fields selectors just define this
SOCIAL_AUTH_LINKEDIN_OAUTH2_FIELD_SELECTORS = [...]
with the needed fields selectors, also define
SOCIAL_AUTH_LINKEDIN_OAUTH2_EXTRA_DATA properly, that way the values will
be stored in
UserSocialAuth.extra_data field. By default
lastName are requested and stored.
For example, to request a user’s email from the Linkedin API and store the
UserSocialAuth.extra_data, you would add these settings:
# Add email to requested authorizations.
SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE = ['r_liteprofile', 'r_emailaddress']
# Add the fields so they will be requested from linkedin.
SOCIAL_AUTH_LINKEDIN_OAUTH2_FIELD_SELECTORS = ['emailAddress']
# Arrange to add the fields to UserSocialAuth.extra_data
SOCIAL_AUTH_LINKEDIN_OAUTH2_EXTRA_DATA = [('id', 'id'),
Looks like LinkedIn is forcing the definition of the callback URL in the
application when OAuth2 is used. Follow the setup 1 carefully as per Linkedin
App Setup to add a redirect url/callback url. Be sure to set the proper
values, otherwise a
(400) Client Error: Bad Request might be returned by