Menu
CoddyTech

מתן הרשאה ל-Origin אחר

חלק מהיחידה REST APIs במסלול ה-Node.js של Coddy. שיעור 19 מתוך 25.

דף ממקור אחד זקוק להרשאה כדי לקרוא תגובת API ממקור אחר. הדפדפן שולח כותרת בקשה בשם Origin. ה-API יכול להשיב עם Access-Control-Allow-Origin שמציין את המקור המורשה.

if (req.get('origin') === 'https://shop.example.com') {
    res.set('Access-Control-Allow-Origin', 'https://shop.example.com');
}

הדפדפן בודק את כותרת התגובה הזאת לפני שהוא חושף את התגובה לדף. ייתכן שה-API עדיין יקבל את הבקשה: CORS אינו בדיקת התחברות. סרגל הבקשה אינו אוכף CORS, אבל בכרטיסייה Headers אפשר לבדוק מה דפדפן יקבל.

req.get('origin') קוראת את כותרת Origin של הבקשה. שמות הכותרות אינם מבחינים בין אותיות גדולות לקטנות.

challenge icon

אתגר

קל

זהו פרויקט תרגול קטן. ההגדרה שלו מסופקת; ערוך רק את server.js.

בנתיב GET שסופק, הגדר את Allow-Origin רק כאשר Origin שווה ל־https://board.example.com. השאר את תגובת ה־JSON. הרץ, ואז שלח GET אל /result עם כותרת Origin זו: כותרת התגובה חייבת להתאים. אם Origin שונה או חסר, לא תופיע כותרת Allow-Origin.

בשדה Headers שבסרגל הבקשות, הזן Origin: https://board.example.com. בדוק את כותרות התגובה כדי לראות את ההרשאה.

נסו בעצמכם

import express from 'express';
const app = express();
app.get('/result', (req, res) => {
    res.json({ ok: true });
});
app.listen(3000);

כל השיעורים ביחידה REST APIs

תרגלו בעצמכם: Express אונליין