外部 OAuth 登录后 Django 重定向到上一页

标签 django oauth

我正在使用 Twitter OAuth 登录用户。登录将用户带到 Twitter,并在成功 OAuth 后将他们返回到指定的 url。从这个 url,我想将用户重定向回他们登录前所在的页面。

有什么好的方法可以做到这一点?

最佳答案

两种方式:

  • 制作您的 OAuth URL,以便将它们发送回正确的页面,或者至少说 next=url在查询字符串中。这是最可靠的,但可能会损坏(看起来确实很丑,但谁在复制和粘贴 OAuth URL?)
  • 存储包含最后请求的“真实”页面的 session 。我这样说“真实”是因为我不认为任何身份验证/注册页面是真实的。因此,每次点击时,请检查它们所在的 URL,如果它与身份验证无关,则将其存储在 session 中。当他们点击您的 OAuth 访问页面时,将他们重定向到 session 值。您可以在上下文处理器或某些中间件中执行此操作。需要 cookie 和注销将取消它。
  • 关于外部 OAuth 登录后 Django 重定向到上一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3152720/

    相关文章:

    python - Django 按小时/天分组

    python - Django 表单 : could not convert string to float

    javascript - 使用 Angular 2 的 Oauth 2 弹出窗口

    git - 使用 Codenvy 推送到 GitHub 时出现问题 : "Can' t store ssh key. 无法获取私有(private) ssh key 。”

    ruby-on-rails - 来自 omniauth 的双重请求(设计、自定义策略、oauth2)

    django - ImageField Django 模板

    python - Django url 没有事件与给定的查询匹配?

    javascript - 在 django-socketio 中获取用户

    java - Google 的 oauth 端点返回 'Bad Request' ...但为什么呢?

    c# - C# 中的谷歌分析 API