Django Facebook登录/注册:验证验证代码时出错

Django Facebook登录/注册:验证验证代码时出错,django,facebook-graph-api,oauth,django-allauth,django-rest-auth,Django,Facebook Graph Api,Oauth,Django Allauth,Django Rest Auth,我使用的是用于社交登录的。我根据rest auth文档设置了facebook的登录。这是一种观点。身份验证工作正常,但用户的电子邮件为空。因此,我添加了回调url和客户端类(如文档所述) 但它不起作用。它返回以下错误: 验证验证代码时出错。请确保重定向uri与OAuth对话框请求中使用的uri相同 首先,我认为问题出在图书馆。所以我打印了请求的所有参数,并检查了所有这些内容。一切看起来都很好,所以我试着将带有这些参数的URL放入。但错误是一样的。以下是我在不使用allauth库的情况下手动尝试的

我使用的是用于社交登录的。我根据rest auth文档设置了facebook的登录。这是一种观点。身份验证工作正常,但用户的电子邮件为空。因此,我添加了回调url客户端类(如文档所述)

但它不起作用。它返回以下错误:

验证验证代码时出错。请确保重定向uri与OAuth对话框请求中使用的uri相同

首先,我认为问题出在图书馆。所以我打印了请求的所有参数,并检查了所有这些内容。一切看起来都很好,所以我试着将带有这些参数的URL放入。但错误是一样的。以下是我在不使用allauth库的情况下手动尝试的所有URL:

https://graph.facebook.com/v2.10/oauth/access_token?redirect_uri=http://localhost:8000/rest-auth/facebook/&client_id=203192345223034931&client_secret=a475bbbscds65437c89bf04d359d98a&code=203192345223034931|l3ujbbbscdhrf0404d3B2de57Dw
cliend\u idclient\u secret我从Facebook开发者控制台的仪表板上获取。而代码是来自的应用程序令牌

在facebook开发者界面中,我设置:

有效的OAuth重定向URI:

应用程序域:localhost

因为我在我的浏览器中手动尝试了它,我希望这不会是库的问题,而是我的设置或我对某些东西的误解


我在普通域名上试用过,但没有任何变化。

“代码是来自这里的应用令牌”-这是错误的。
code
参数不是固定值,而是从登录对话框重定向返回的随机值。谢谢回复,但我仍然不明白。我可以通过客户端上的Facebook Javascript SDK获取用户访问令牌。然后我将用户访问令牌发送到我的API。但是我怎样才能通过Facebook SDK获得代码呢?你不能,因为客户端登录流中没有代码参数。代码的唯一用途是交换短期用户访问令牌。你已经有了一个令牌,所以你为什么要在服务器端再次做同样的事情还不清楚。因为我不明白客户端应该管理什么,服务器上应该管理什么。所以我想用用户访问令牌做什么:1。用户点击Facebook登录按钮,2。通过Facebook Javascript SDK打开带有权限信息的弹出窗口(例如用户使用电子邮件的权限),3。在这段时间内,客户端获得用户访问令牌,然后将其发送到我的API。如果用户已经拥有接受权限,那么它将是唯一获得的用户访问令牌。这是一种很好的标准方法,如何登录用户?如果是,那么使用代码的过程看起来如何?您将令牌发送到服务器,并使用它从那里进行API调用。您不需要在客户端查询任何用户数据并将其发送到服务器,这很容易伪造。所以,只使用令牌,然后使用该令牌请求用户id、名称等。
https://graph.facebook.com/v2.10/oauth/access_token?redirect_uri=http://localhost:8000/rest-auth/facebook/&client_id=203192345223034931&client_secret=a475bbbscds65437c89bf04d359d98a&code=203192345223034931|l3ujbbbscdhrf0404d3B2de57Dw