Frage

Ich arbeite an oben auf dem Netz

Ich bin über eine Beta-Version der Website. Es braucht einen Beta-Code haben Zugriff zu beschränken. Der Standort befindet sich in django geschrieben.

Ich will nicht das grundlegende Auth-System ändern, um einen Beta-Code aufzunehmen, und ich interessiere mich nicht besonders, dass die Sicherheit des Beta-Code ist gepanzert, nur, dass es ein bedeutender Hemmschuh.

Wie soll ich das tun? Es ist ein ziemlich großes Projekt, so zu jeder Ansicht Code hinzuzufügen, ist bei weitem nicht ideal.


Diese Lösung funktioniert gut. Die Middleware-Klasse endete ich mit diesem auf den Punkt:

from django.http import HttpResponseRedirect

class BetaMiddleware(object):
    """
    Require beta code session key in order to view any page.
    """
    def process_request(self, request):
        if request.path != '/beta/' and not request.session.get('in_beta'):
            return HttpResponseRedirect('%s?next=%s' % ('/beta/', request.path))
War es hilfreich?

Lösung

Starten Sie mit dieser Django Schnipsel , aber ändern Sie es request.session['has_beta_access'] zu überprüfen. Wenn sie es nicht haben, haben sie dann eine Umleitung auf eine „eingeben Beta-Code“ Seite zurück, die, wenn sie mit dem richtigen Code gepostet, dass die Session-Variable setzt auf True.

ihm eine öffentliche Beta macht dann besteht nur aus, dass die Middleware von Ihrer MIDDLEWARE_CLASSES Einstellung zu entfernen.

Andere Tipps

Sie können sich wahrscheinlich Zugriff auf die gesamte Website über Apache mit .htaccess beschränken, aus der Projektraum, das Problem unter der django vollständig.

Tu, was Stackoverflow hat.

Sie hatten eine einfache E-Mail / Passwort Form. Es hatte ein einziges Passwort hartcodiert (falkensmaze). Wenn der Benutzer das Passwort wird gesetzt rechts ein Cookie. z.B. auth = 1

Keine Sorge darüber unsecure zu sein. Wer Care, wenn jemand hackt in die Beta?

Apache / .htaccess ist auch eine schöne und einfache Lösung.

Es soll möglich sein @login_required Dekorateure auf der ganzen Linie zu addieren und mit ihr geschehen. Sofern Sie eine Boot-Belastung von View-Funktionen haben, sollte es nicht zu schrecklich sein.

scroll top