我正在使用 django 1.8.3 和 django-allauth 0.21.0,我希望用户能够使用例如他们的 Google 帐户而无需离开页面。原因是他们登录的页面中有一些有值(value)的数据需要在他们登录后发布。我已经使用本地帐户创建正常工作,但我在社交方面遇到了麻烦因为许多社交网络会将用户引导到一个单独的页面以请求权限等。理想情况下,我会在我的页面上以模式进行所有这些操作,一旦身份验证成功,该模式就会关闭。
目前我能想到的唯一可能(虽然不理想)的解决方案是强制在另一个选项卡中打开身份验证页面(例如在链接中使用 target="_blank"),然后提示用户单击在其他选项卡中完成身份验证后,返回原始窗口中的内容。
但是,这里的问题是,我想不出一种方法让原始页面知道以前匿名用户刚刚创建了哪个帐户,而无需他们刷新页面,这会导致需要的重要数据将被张贴丢失。
有人对我如何完成上面概述的两个解决方案中的任何一个有任何想法吗?
最佳答案
我最终使用 Django 的 session 框架解决了这个问题。事实证明, session ID 由 django-allauth 自动通过 oauth 过程传递,因此在登录完成后,存储在 request.session
中的任何内容都可以在另一端访问。
关于python - 在不离开页面的情况下使用 django-allauth 进行社交登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31370534/