Django Rest Framework 和 React Linkedin 社会认证 OAuth2Error

问题描述

我正在使用 Django Rest Framework 作为后端和 React 作为前端构建 Web 应用程序。

使用以下库

  • Django==3.1.5
  • djangorestframework==3.12.2
  • dj-rest-auth==2.1.3
  • django-allauth==0.44.0

我正在尝试实施 Linkedin 身份验证,但如上所述出现以下错误

OAuth2Error at /api/v1/appname/linkedin/
Error retrieving access token: b'{"error":"invalid_request","error_description":"Unable to retrieve access token: appid/redirect uri/code verifier does not match authorization code. Or authorization code expired. Or external member binding exists"}'

django rest 框架中的后端代码

class LinkedInLoginView(CustomLoginView):
    """
    LinkedIn login
    """
    adapter_class = LinkedInOAuth2Adapter
    callback_url = "CALL_BACK_URL"
    client_class = oauth2client

和前端代码

<LinkedIn
    clientId="CLIENT_ID"
    callback={callbackLinkedIn}
    scope={["r_liteprofile","r_emailaddress"]}
    text={rendertext()}
    className='ant-btn LinkdinIcon ant-btn-link'
    redirect_uri="CALL_BACK_URL"
    render={renderProps => (
    <Button type="link" className="LinkdinIcon" onClick={renderProps.onClick}>
<LinkdinIcon /></Button>)}

CALL_BACK_URL添加到linkedin 开发者的重定向网址下。

前端 api 将生成 code 并将其传递给后端 api,DRF 使用 code生成 access_token调用linkedin 配置文件 api(内部)

我们在不同的域中运行后端,而前端在不同的域中运行。

有人可以帮我理解什么是后端CALL_BACK_URL,什么是前端吗?

如果有人可以分享一些参考链接代码,我们将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)