问题描述
我有点困惑,因为在完成必要的流程后,LinkedIn r_basicprofile
未被授权用于我的申请。
我在 SO 上查看了一些相关问题,但似乎解决方案对我不起作用,可能是因为 LinkedIn social oauth 上的不同变化。
Authentication Failed: Scope 'r_basicprofile' is not authorized for your application
我的后端设置、前端和 API 都是正确的,但我不知道为什么它不起作用。
'social_core.backends.linkedin.LinkedinOAuth2',SOCIAL_AUTH_LINKEDIN_OAUTH2_KEY = 'correct'
SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET = 'correct'
SOCIAL_AUTH_LINKEDIN_OAUTH2_ScopE = ['r_basicprofile','r_emailaddress']
SOCIAL_AUTH_LINKEDIN_OAUTH2_FIELD_SELECTORS = ['email-address','formatted-name','public-profile-url','picture-url']
SOCIAL_AUTH_LINKEDIN_OAUTH2_EXTRA_DATA = [
('id','id'),('formattedname','name'),('emailAddress','email_address'),('pictureUrl','picture_url'),('publicProfileUrl','profile_url'),]
前端
<li class="linkedin"><a href="{% url "social:begin" "linkedin-oauth2" %}">Login with LinkedIn</a></li>
urls.py
path('social-auth/',include('social_django.urls',namespace='social')),
解决方法
您在使用 r_basicprofile 时遇到问题的原因是 Linked in 仅提供以下范围
r_emailaddress 使用与您的 LinkedIn 帐户关联的主要电子邮件地址
r_liteprofile 使用您的姓名和照片
w_member_social 代表您创建、修改和删除帖子、评论和反应
所以很可能您正在尝试遵循很久以前在linkedin删除r_basicprofile之前编写的教程
请注意,文档 https://docs.microsoft.com/en-us/linkedin/ 确实提到了 3 个不同范围的权限(lite、basic 和 Full)配置文件,但实际上linkedin 开发者应用程序只授予您 r_liteprofile
所以要解决问题只需更改行
SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE = ['r_basicprofile','r_emailaddress']
到
SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE = ['r_liteprofile','r_emailaddress']
这将解决范围问题
,请检查您的产品选择是否使用linkedIn登录