gpt4 book ai didi

python - Linkedin 身份验证提供无效的 redirect_uri

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:34 27 4
gpt4 key购买 nike

我正在使用 linkedin 身份验证 api 来登录我的网站用户。

首先,我将重定向到以下 url:

https://www.linkedin.com/oauth/v2/authorization?' \
'response_type=code' \
'&client_id=*****' \
'&redirect_uri=http%3A%2F%2F127.0.0.1%3A8000%2Faccounts%2Flinkedin%2Fcallback%3Fnext%3D%2Fhome' \
'&state=123456789' \
'&scope=r_basicprofile%20r_emailaddress'

这成功重定向到 linkedin 身份验证对话框。在接受授予 linkedin 应用程序用户权限后,用户成功重定向到 redirect_uri 并附加了 code 参数。

之后我发送一个 POST 请求,如下所示:

requests.post(
'https://www.linkedin.com/oauth/v2/accessToken',
data={
'grant_type': 'authorization_code',
'code': returned code in previous step,
'redirect_uri': 'http%3A%2F%2F127.0.0.1%3A8000%2Faccounts%2Flinkedin%2Fcallback%3Fnext%3D%2Fhome',
'client_id': ****,
'client_secret': settings.LINKEDIN_CLIENT_SECRET,
}
)

但是这个请求没有成功,不知道为什么!以下是 linkedin 返回的响应:

{'error': 'invalid_redirect_uri', 'error_description': 'Unable to retrieve access token: appid or redirect uri or code verifier does not match authorization code or authorization code expired'}

如您所见,两个请求中的 redirect_uri 相同...

最佳答案

在您的 token 请求中,您在 POST 数据中提供重定向 URI 的 URL 编码值,但是 requests.post将自动对 data 中的键/值对进行 URL 编码目的。因此,这个值到达服务器时经过双重编码,因此与授权请求中发送的原始值不匹配;服务器响应 invalid_redirect_uri .

你需要发送

    'redirect_uri': 'http://127.0.0.1:8000/accounts/linkedin/callback?next=/home',

关于python - Linkedin 身份验证提供无效的 redirect_uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44344585/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com