django_openid_auth (https://launchpad.net/django-openid-auth)를 사용하기 시작했으며 정상적으로 작동합니다.django : 기존 신호에 연결하지 못했습니다.
openid 공급자에 연결하여 사용자 인증을 관리합니다.
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_open_auth.views.login_complete이 블록이 있다는 것입니다.
내가 장고 - 오픈 ID-인증의 OpenIDBackend 클래스의 내 자신의 OpenIdBackend 서브 클래스를 생성하고 해당 파일에서 내 자신의 프로젝트의 core.authentication.openidbackend에 넣어 있습니다 : django_openid_auth.signals에서 는 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)의 조언을 따랐습니다. 또한 로거가 올바른 로깅 conf를 사용하지 않아 모든 것이 이전에 작동했을 수 있으므로 로깅이 작동하지 않는다는 것을 알게되었습니다.
그래 : 예. 당신이 기분이 좋지 않을 때 작동하지 않아야합니다 :). 도움을 주셔서 감사합니다.
변경 'openid_login_complete.connect (update_request)'를'openid_login_complete.connect (update_request, instance)'로 설정합니다. 이것은 송신자 인스턴스를 기다리고 있습니다. – karthikr
미안하지만 이해가 잘 안되네. 'openid_login_complete' 신호를 구독하고 싶니? –
예, 그 신호가 상승한 후에 물건을 보내고 싶습니다 (보낸 사람, 방아쇠를 당긴 사람). –