【问题标题】:Python-social-auth: do not reassociate existing usersPython-social-auth:不要重新关联现有用户
【发布时间】:2018-02-02 23:47:45
【问题描述】:

我正在使用 python-social-auth 来允许用户通过 SAML 登录;一切正常,除了如果登录用户打开 SAML 登录页面并以其他用户身份再次登录,他们将获得与这两个 SAML 用户的关联,而不是切换登录。

我了解这背后的目的(因为您通常可以将用户与不同的身份验证服务相关联),但在这种情况下,我需要强制执行单个关联(即,如果您使用给定的 SAML 登录IdP,您不能为具有相同提供者的同一用户添加另一个关联)。

是否有任何 python-social-auth 解决方案,或者我应该拼凑一些东西(例如,阻止登录用户访问登录页面)?

【问题讨论】:

    标签: django python-social-auth


    【解决方案1】:

    python-social-auth 中没有标准的方法,有几种替代方法:

    • 覆盖登录页面,如果有用户通过身份验证,则先将其注销,或者显示错误,无论适合您的项目。

    • 添加一个pipeline函数并将其设置在顶部,如果user不是None,您可以引发错误、注销用户等。

    • 如果self.strategy.request.user 存在有效的用户实例,则覆盖后端并扩展其中的auth_allowed 方法返回False。这将停止身份验证流程并引发AuthForbidden

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      相关资源
      最近更新 更多