diff --git a/social_auth/backends/contrib/linkedin.py b/social_auth/backends/contrib/linkedin.py index 091016572..f8724d26b 100644 --- a/social_auth/backends/contrib/linkedin.py +++ b/social_auth/backends/contrib/linkedin.py @@ -56,8 +56,17 @@ def get_user_details(self, response): 'last_name': last_name, 'email': email} + @classmethod + def tokens(cls, instance): + """ Return list of OAuth v1 tokens from Linkedin """ + token = super(LinkedinBackend, cls).tokens(instance) + if token and 'access_token' in token: + token = dict(tok.split('=') + for tok in token['access_token'].split('&')) + return token -class LinkedinOAuth2Backend(LinkedinBackend): + +class LinkedinOAuth2Backend(OAuthBackend): """Linkedin OAuth2 authentication backend""" name = 'linkedin-oauth2'