继续折腾Django,到了第三方登录这里,由于fb,twitter这些目前都还封着,决定还是做个LinkedIn好。
注意:以下部分是在折腾好social.apps.django_app.default之后的配置。
#对应 app的setting.py
AUTHENTICATION_BACKENDS = (
'social.backends.linkedin.LinkedinOAuth2',
'django.contrib.auth.backends.ModelBackend',
'account.authentication.EmailAuthBackend',
)
#LinkedIn Oauth2
#去linkedin的developer页面登录申请一个就好。
SOCIAL_AUTH_LINKEDIN_OAUTH2_KEY = ' '
SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET = ' '
#SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE = ['r_basicprofile','r_emailaddress']
# Add the fields so they will be requested from linkedin.
SOCIAL_OAUTH2_LINKEDIN_FIELD_SELECTORS = ['email-address']
申请app部分的重点是,在那个申请的app里面要注明允许redirect的网址:以下来自linkedin的developer管理app的界面
以上这个部分其实弄了很久,这篇decoding URL帮了很大的忙:
https://naveengopisetty.wordpress.com/2014/09/15/linkedin-oauth-2-0-issue-invalid-redirect_uri-this-value-must-match-a-url-registered-with-the-api-key/
这边对于Django来说主要是那个/social-auth/complete/linkedin-oauth2/这个在redirect那个超长链接里面拿得到,具体想有个概念还是去看上面那篇解答。