Django:拦截身份验证以存储会话变量或cookie
我正在做一个在django上运行的项目。我想在多个地方进行身份验证。首先,我想维护标准的身份验证机制,并继续将其用于站点管理。其次,除了标准身份验证之外,我还想拦截登录请求,并检查用户是否在另一个系统上进行了身份验证,并存储会话变量或cookie,以便在进行身份验证后使用。然后在注销时删除会话变量或cookie。第二种身份验证机制不应影响第一种身份验证机制。此外,如果第一个成功,第二个失败,则对标准管理没有影响 我已经研究过在settings authentication_BACKENDS元组中声明自定义身份验证后端。但据我所知,它按顺序进行身份验证,一旦匹配,它将停止身份验证Django:拦截身份验证以存储会话变量或cookie,django,authentication,Django,Authentication,我正在做一个在django上运行的项目。我想在多个地方进行身份验证。首先,我想维护标准的身份验证机制,并继续将其用于站点管理。其次,除了标准身份验证之外,我还想拦截登录请求,并检查用户是否在另一个系统上进行了身份验证,并存储会话变量或cookie,以便在进行身份验证后使用。然后在注销时删除会话变量或cookie。第二种身份验证机制不应影响第一种身份验证机制。此外,如果第一个成功,第二个失败,则对标准管理没有影响 我已经研究过在settings authentication_BACKENDS元组中
对此,如有任何指导,将不胜感激。谢谢如果您只需要设置和取消设置cookie或会话变量,您可以使用身份验证模块()发送的信号 例如:
from django.contrib.auth.signals import user_logged_in, user_logged_out
def user_logged_in_hook(sender, **kwargs):
# kwargs will contain request and user objects
print kwargs
def user_logged_out_hook(sender, **kwargs):
# kwargs will contain request and user objects
print kwargs
user_logged_in.connect(user_logged_in_hook)
user_logged_out.connect(user_logged_out_hook)
如果您只需要设置和取消设置cookie或会话变量,则可以使用身份验证模块()发送的信号 例如:
from django.contrib.auth.signals import user_logged_in, user_logged_out
def user_logged_in_hook(sender, **kwargs):
# kwargs will contain request and user objects
print kwargs
def user_logged_out_hook(sender, **kwargs):
# kwargs will contain request and user objects
print kwargs
user_logged_in.connect(user_logged_in_hook)
user_logged_out.connect(user_logged_out_hook)