1

django all-auth用于通过社交网络对用户进行身份验证,因此,当我尝试facebook/google/twitter通过 url 登录时:

http://127.0.0.1:8000/accounts/socialnetwork/login 

(这里socialaccount是 facebook/google/twitter),我能够成功登录,然后被重定向到:

 http://127.0.0.1:8000/accounts/profile/

但是当我要去网址时:

http://127.0.0.1:8000/accounts/socialnetwork/login/callback/

我收到此错误“通过社交网络登录时发生错误”,但如果我已经登录,可以看到“注销”和“更改电子邮件”选项。

另外,当我要去

http://127.0.0.1:8000/accounts/social/connections/ 

有时我只能看到 google 和 twitter 帐户,有时只能看到 facebook 帐户,但不能同时看到这两个帐户,这取决于我在 settings.py 中的 site_id。现在我真的很困惑这是否是我的回调 url 或我的站点域或其他东西的问题。

4

2 回答 2

0

您提到访问http://127.0.0.1:8000/accounts/socialnetwork/login/(我假设socialnetwork是 google/twitter/facebook 之一)工作正常。恭喜!-- 因为这些是使用第三方提供商登录的正确入口点。

您不应该自己直接访问回调 url。它旨在由第三方提供商重定向。这样做时,它会传递可用于登录的身份验证相关代码。如果直接访问url,这些代码没有通过,因此系统会报错“发生错误”...

至于与社交关系 URL 相关的问题:您在此处看到的是所有与本地用户帐户相关联的第三方帐户。因此,如果它不时变化,我只能假设您使用不同的帐户登录 - 这意味着不同的连接第三方帐户。

于 2013-06-14T20:05:18.887 回答
0

我对什么值去哪里有相当多的困惑,Twitter 有一个 APP_ID 似乎没用,除非您提交支持请求,但不知何故,我从文档中了解到这是我需要的值放入 CLIENT_ID,但是不,您需要将 API_KEY 放在那里....模板缺乏良好的错误记录/显示(因为格式错误的异常文本)使得很难弄清楚发生了什么上。幸运的是我设置了一个断点并找到了真正的错误,改变了周围的值,瞧,它正在工作......

不知道谁是错的,allauth 或 twitter,但如果每个人在命名事物时都能达成一致,那将会有所帮助。

于 2021-09-08T16:22:46.420 回答