저는 큰 Django 앱을 작업 중이며 대부분의 경우 액세스하려면 로그인이 필요합니다. 즉, 앱 전체에 다음과 같이 뿌렸습니다.
@login_required
def view(...):
괜찮 습니다. 모든 곳에 추가하는 것을 기억하는 한 훌륭하게 작동합니다 ! 슬프게도 때때로 우리는 잊어 버리고 실패는 종종 그다지 분명하지 않습니다. 보기에 대한 유일한 링크가 @login_required 페이지에있는 경우 로그인하지 않고도 해당보기에 실제로 도달 할 수 있다는 사실을 눈치 채지 못할 것입니다.하지만 악의적 인 사용자는 이것이 문제임을 알아 차릴 수 있습니다.
내 생각은 시스템을 뒤집는 것이었다. 모든 곳에 @login_required를 입력하는 대신 다음과 같은 내용이 있습니다.
@public
def public_view(...):
공공 장소를 위해서. 나는 이것을 미들웨어로 구현하려고 시도했지만 작동하지 않는 것 같습니다. 내가 시도한 모든 것이 우리가 사용하는 다른 미들웨어와 나쁘게 상호 작용했다고 생각합니다. 다음으로 URL 패턴을 탐색하여 @public이 아닌 모든 항목이 @login_required로 표시되었는지 확인하기 위해 무언가를 작성하려고했습니다. 적어도 무언가를 잊으면 빠른 오류가 발생합니다. 하지만 @login_required가 뷰에 적용되었는지 확인하는 방법을 알 수 없었습니다 ...
그렇다면이를 수행하는 올바른 방법은 무엇입니까? 도와 주셔서 감사합니다!