User Login Control for Functions

Kategori: Python / Flask , 20 Eylül 2019 , JanFranco


Önceki blog uygulamamızda, oturum açmasak dahi yazı ekleyebiliyor, kullanıcı paneline girebiliyorduk. Bunu engellemek için login_required adında bir decorator fonksiyon oluşturalım. Her fonksiyon için tekrar tekrar yazabiliriz fakat kod tekrarına düşmemek adında decorator fonksiyon kullanalım. İlk olarak aşağıdaki methodu import edelim:


from functools import wraps
Decorator fonksiyonu oluşturalım:


def login_required(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        if "logged_in" in session:
            return f(*args, **kwargs)
        else:
            flash("Error! Please login.", category="danger")
            return redirect(url_for("login"))
    return decorated_function
Burada decorator fonksiyona, fonksiyon gelecek ve eğer oturum açıksa fonksiyon parametreleri ile birlikte return edilecek. Eğer oturum açık değilse hata mesajı ile birlikte login sayfasına yönlendirecek. Fonksiyonu aşağıdaki şekilde kullanabiliriz:


@app.route("/dashboard")
@login_required
def dashboard():
    return render_template("dashboard.html")


Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın