2017-11-17 8 views
0

동일한 사용자의 여러 활성 액세스 토큰을 탐지하고 제한하는 post_save 신호 수신자가 있습니다.Django 사용자는 1 분 동안 사용자의 is_active를 false로 설정 한 다음 다시 활성화하십시오.

이 외에도 감지 된 사용자를 잠그고 사용자의 is_active 필드를 사용하여 사용자를 다시 활성화하려고합니다.

새 모델을 만들고 사용하여 계정 잠금의 시작 시간을 저장하지 않고이를 수행 할 수있는 방법이 있습니까? 또한, 나는 이것에 대한 예정된 일을하는 것이 약간 과잉이라고 생각한다.

+0

비동기 작업을 설정할 수있는 장고의 Celery에 대해 알아 냈습니다. 끝나면 업데이트됩니다. – Castle

+0

셀러리에서 주기적 태스크를 사용하여 모델의'is_active' 필드를 토글 할 수 있습니다. – zaidfazil

답변

0

Django 셀러리를 사용하여 문제를 해결하기 위해 비동기 작업을 설정했습니다.

@app.task 
def start_timeout(username): 

    from time import sleep 
    from django.contrib.auth.models import User 

    user_obj = User.objects.get(username=username) 
    user_obj.is_active = False 
    user_obj.save() 
    sleep(60) 
    user_obj.is_active = True 
    user_obj.save() 
관련 문제