import logging from django.contrib.auth.signals import user_logged_in, user_logged_out logger = logging.getLogger(__name__) def _report_user_logged_in(sender, user, request, **kwargs): from pingcap_sso.user_behavior_track import report_event from pingcap_sso.utils.requests import get_client_agent, get_client_ip report_event( openid=user.openid, event_type='sso.login', event_body={}, user_agent=get_client_agent(request), ip=get_client_ip(request), description='登录' ) def _report_user_logged_out(sender, user, request, **kwargs): from pingcap_sso.user_behavior_track import report_event from pingcap_sso.utils.requests import get_client_agent, get_client_ip if user and user.is_authenticated: report_event( openid=user.openid, event_type='sso.logout', event_body={}, user_agent=get_client_agent(request), ip=get_client_ip(request), description='退出登录' ) user_logged_in.connect(_report_user_logged_in) user_logged_out.connect(_report_user_logged_out)