我开始使用 django_openid_auth ( https://launchpad.net/django-openid-auth ),它工作得很好。
我设法连接到我的 openid 提供程序并获得用户身份验证。事情是在 django_open_auth.views.login_complete 有这个块:
if user is not None:
if user.is_active:
auth_login(request, user)
response = HttpResponseRedirect(sanitise_redirect_url(redirect_to))
# Notify any listeners that we successfully logged in.
openid_login_complete.send(sender=UserOpenID, request=request,
openid_response=openid_response)
return response
else:
return render_failure(request, 'Disabled account')
注意#notify 注释。
我创建了自己的 django-openid-auth OpenIDBackend 类的 OpenIdBackend 子类,并将其放入自己项目的 core.authentication.openidbackend
在该文件中有: from django_openid_auth.signals import openid_login_complete
def update_request(sender, **kwargs):
logger.debug('test')
openid_login_complete.connect(update_request)
但是该调试行永远不会出现在日志中。
那我做错了什么?我检查了其他一些django信号线程,其中一个说导入必须完全相同,否则不会出现连接。
但我怎么能调试呢?问题出在哪里 - 连接是否永远不会发生,因为我将连接放置在错误的位置或者是其他地方的问题?我怎样才能找到这个?
艾伦
编辑:我尝试了一次建议的所有内容,并且我得到了它的工作。我将信号放入单独的文件中,将其导入正确的位置,并遵循 karthikr ( https://stackoverflow.com/users/1628832/karthikr ) 给出的建议。我还注意到我的记录器没有使用正确的日志记录配置,所以一切可能都在早些时候工作,只是日志记录不起作用。
是的 :)。当你感觉不舒服时不应该工作:)。谢谢你们的帮助。