python - 在不离开页面的情况下使用 django-allauth 进行社交登录

标签 python django oauth-2.0 google-oauth django-allauth

我正在使用 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/

相关文章:

python - Django CMS – 在同一模板中为用户和访客显示不同的内容

python - Postgres 性能

python - 使用 Django 批量更新

python - 超链接中的 Django 模板标签

Windows Live Id OAuth 与 c#.net 中的开发环境

python - Django : saving form to database

Python 检查字典中是否定义了键

python - python中将字节数据结构转换为字典

spring-security - Spring Oauth2 Client,自动刷新过期的access_token

javascript - 如何在不使用库的情况下在 native Javascript 中验证 Azure OAuth 访问 JWT token ?