首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django鉴权def不触发logged_in_success和logged_in_fail信号

Django鉴权def不触发logged_in_success和logged_in_fail信号
EN

Stack Overflow用户
提问于 2020-02-20 19:55:22
回答 2查看 159关注 0票数 1

当我按函数进行身份验证时

from django.contrib.auth import authenticate

如果我使用函数,Djnago不会触发成功/失败信号

from django.contrib.auth import login

它会像预期的那样触发。基本上我想从下面的函数中触发信号

代码语言:javascript
复制
user = authenticate(username=username, password=password)

现在,我在代码中添加了额外的行

代码语言:javascript
复制
login(request, user)

在添加这个之后,我在这里得到了信号

代码语言:javascript
复制
from django.contrib.auth.signals import (
    user_logged_in,
    user_login_failed,
)

如何从身份验证定义中获得信号?我将此用于API

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-20 20:20:07

Django没有从authenticate发送user_logged_in信号。你可以看到here,它从login发送它。但是,您始终可以自己触发signal。

代码语言:javascript
复制
from django.contrib.auth import authenticate, user_logged_in


user = authenticate(username=username, password=password)
user_logged_in.send(sender=user.__class__, request=request, user=user)

或者可以编写一个同时完成这两个任务的函数。

票数 2
EN

Stack Overflow用户

发布于 2020-02-20 20:23:00

authenticate仅检查提供的凭据,并在成功时返回一个User实例(docs)。它不会执行实际的登录。这是由login函数(docs)完成的。它们应该像你一样使用。

鉴权成功时login发送user_logged_in信号,鉴权失败时authenticate发送user_login_failed

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60319368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档