AuthFailed 在 /social-auth/complete/linkedin-oauth2/

问题描述

我有点困惑,因为在完成必要的流程后,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']

这将解决范围问题

,

enter image description here

请检查您的产品选择是否使用linkedIn登录