حماية العروض باستخدام login_required
قيّد الوصول إلى المسارات وأعد توجيه المستخدمين المجهولين.
حماية العروض باستخدام login_required درس مجاني في Flask Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Flask Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Flask Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Some Pages Need a Guard
A dashboard or settings page should never load for a stranger. You protect such routes so only a logged-in user can reach them.
The login_required Decorator
Flask-Login hands you a one-line gate: the login_required decorator. Stack it on any view and anonymous visitors get bounced away.
from flask_login import login_requiredApply It to a Route
Place login_required just below the route decorator. Order matters, so the auth check wraps the view that Flask actually calls.
@app.route("/dashboard")
@login_required
def dashboard():
return "Welcome back"What Happens to Strangers
If an anonymous user hits a guarded route, Flask-Login does not show the page. It redirects them to your login view instead.
Tell It Where Login Lives
For the redirect to work, set login_view on the manager. Give it the endpoint name of your login route so it knows the target.
login_manager.login_view = "login"The next Parameter
Flask-Login appends a next query parameter to the login URL. It remembers where the user wanted to go before being redirected.
Send Them Back After Login
In your login view, read request.args.get for next and redirect there once they sign in. The user lands exactly where they started.
dest = request.args.get("next") or url_for("index")
return redirect(dest)Customize the Message
You can set login_message to control the flash shown when access is denied. A friendly note beats a confusing silent redirect.
login_manager.login_message = "Please log in first."Use current_user Inside
Inside a guarded view you can trust current_user is real and authenticated. No need to re-check, the decorator already did it.
@login_required
def profile():
return current_user.emailProtecting Many Routes
For a whole admin area you can apply login_required per view, or attach it to a blueprint's before_request so every route is covered.
Beyond Just Logged In
login_required only checks that someone is authenticated. For role checks like admin-only, you add your own logic on top inside the view.
Quick Check
An anonymous visitor opens a login_required route. What does Flask-Login do?
Recap
You guarded routes with login_required, set login_view for redirects, and used next to return users home. Your protected pages are locked down. 🛡️
الأسئلة الشائعة
هل درس «حماية العروض باستخدام login_required» مجاني؟
نعم — نص درس «حماية العروض باستخدام login_required» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Flask Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Flask Academy 4 دروس في المجموع.
ماذا ستتعلم في «حماية العروض باستخدام login_required»؟
قيّد الوصول إلى المسارات وأعد توجيه المستخدمين المجهولين. تتمرن على Flask Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Flask Academy؟
لا تُشترط خبرة سابقة. Flask Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «حماية العروض باستخدام login_required»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Flask Academy هذا؟
نعم. كل درس في Flask Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تجزئة كلمات المرور وعدم تخزينها كنص صريح
- محمّل المستخدم وUserMixin
- login_user وlogout_user والجلسات
- حماية العروض باستخدام login_required