You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django+social-auth-app-django集成LinkedIn授权报错求可用配置示例

解决LinkedIn OpenID Connect在social-auth-app-django中的配置问题

你的核心问题是误用了LinkedIn旧版API的scope(比如r_basicprofile),但当前应用启用的是Sign In with LinkedIn using OpenID Connect产品,必须使用OpenID标准的scope,同时要对应最新的字段映射规则。

下面是可用的settings.py配置示例:

# LinkedIn OpenID Connect 核心配置
SOCIAL_AUTH_LINKEDIN_OAUTH2_KEY = '你的Client ID'  # 替换为实际获取的Client ID
SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET = '你的Client Secret'  # 替换为实际获取的Client Secret

# OpenID Connect 标准必填scope,必须包含这三个
SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE = ['openid', 'profile', 'email']

# 对应LinkedIn OpenID返回的字段(弃用旧版的formatted-name等字段名)
SOCIAL_AUTH_LINKEDIN_OAUTH2_FIELD_SELECTORS = [
    'name',
    'email',
    'picture',
    'profile'
]

# 字段映射:LinkedIn返回字段 → Django用户模型字段/extra_data存储键
SOCIAL_AUTH_LINKEDIN_OAUTH2_EXTRA_DATA = [
    ('sub', 'id'),  # OpenID标准的用户唯一标识是sub,而非旧版的id
    ('name', 'name'),
    ('email', 'email'),
    ('picture', 'picture_url'),
    ('profile', 'profile_url'),
]

# 可选配置:生产环境建议开启HTTPS强制跳转
# SOCIAL_AUTH_REDIRECT_IS_HTTPS = True

关键注意事项:

  • 确认LinkedIn应用后台已添加Sign In with LinkedIn using OpenID Connect产品,并且在该产品的设置页面,将你的Django应用重定向URI(比如本地调试用http://localhost:8000/complete/linkedin-oauth2/,生产环境替换为实际域名)添加到「Authorized redirect URLs for your app」列表中。
  • 旧版的r_basicprofile、r_emailaddress等scope属于LinkedIn REST API产品,和OpenID Connect产品不兼容,必须完全弃用。
  • 配置正确后,social-auth-app-django的LinkedIn OAuth2后端会自动适配OpenID流程,不会再请求旧的r_liteprofile等未授权scope。

内容的提问来源于stack exchange,提问作者Kimonode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:55:04