Büyük çoğunluğuna erişmek için oturum açma gerektiren büyük bir Django uygulaması üzerinde çalışıyorum. Bu, uygulamamızın tamamına serpiştirdiğimiz anlamına gelir:
@login_required
def view(...):
Sorun değil ve her yere eklemeyi hatırladığımız sürece harika çalışıyor ! Ne yazık ki bazen unutuyoruz ve başarısızlık çoğu zaman çok açık değil. Bir görünüme giden tek bağlantı @login_required sayfasındaysa, o görünüme giriş yapmadan gerçekten erişebileceğinizi fark edemezsiniz. Ancak kötü adamlar bunu fark edebilir, ki bu bir problemdir.
Benim fikrim sistemi tersine çevirmekti. Her yerde @login_required yazmak zorunda kalmak yerine, bunun yerine şöyle bir şeyim olur:
@public
def public_view(...):
Sadece halka açık şeyler için. Bunu bazı ara yazılımlarla uygulamaya çalıştım ve işe yarayamadı. Denediğim her şey, kullandığımız diğer ara yazılımlarla kötü bir şekilde etkileşime girdi sanırım. Daha sonra, @ public olmayan her şeyin @login_required olarak işaretlenip işaretlenmediğini kontrol etmek için URL kalıplarını geçmek için bir şeyler yazmayı denedim - en azından o zaman bir şeyi unutursak hızlı bir hata alırız. Ama sonra @login_required'ın bir görünüme uygulanıp uygulanmadığını nasıl anlayacağımı çözemedim ...
Peki bunu yapmanın doğru yolu nedir? Yardım için teşekkürler!