身份验证失败:包括有效的 openId 范围,如个人资料、电子邮件

问题描述 投票:0回答:1

我正在使用

Django
social-auth-app-django
构建一个应用程序。

我遵循了本教程

我在LinkedIn上为开发人员创建了一个应用程序,获取了client_id和secret_key。我还确保产品

Sign In with LinkedIn using OpenID Connect
已添加到我的应用程序中。

settings.py
中,我添加了所有OAUTH2参数:

SOCIAL_AUTH_LINKEDIN_OAUTH2_KEY = '...'  # Client ID
SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET = '...'  # Client Secret
SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE =  ['r_basicprofile', 'r_emailaddress']
SOCIAL_AUTH_LINKEDIN_OAUTH2_FIELD_SELECTORS = ['email',
                                               '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'),
]

但是,我不断得到

Authentication failed: Scope "r_basicprofile" is not authorized for your application

我改变了

SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE
:

SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE =  ['openid']

现在我明白了

Authentication failed: Include valid openId scopes like profile, email.

根据官方LinkedIn文档,我也尝试过

SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE = ['openid', 'profile', 'email']

但是我得到了

Authentication failed: Scope "r_liteprofile" is not authorized for your application
。再次。

有人有一个有效的 settings.py 配置示例吗?

django oauth-2.0 openid social-auth-app-django
1个回答
0
投票

要使用开放ID范围,它需要其他范围,正如您上面提到的。

转到 linkedin 开发应用程序中的 auth 选项卡,您将看到您拥有的范围列表。 enter image description here


所以对我来说,这就是我的代码
 scope = ['w_member_social', 'openid', 'profile', 'email'] 

这有效 enter image description here

注意:确保代码中的重定向网址与您在开发帐户门户上的重定向网址相匹配

© www.soinside.com 2019 - 2024. All rights reserved.