מזהה אזור
REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, REGION_ID.r נכלל בכתובות URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.
ממשק ה-API של המשתמשים מאפשר לאפליקציה:
- זיהוי אם המשתמש הנוכחי נכנס לחשבון.
- הפניה אוטומטית של המשתמש לדף הכניסה המתאים כדי להיכנס לחשבון.
- אם למשתמש באפליקציה אין חשבון Google, צריך לבקש ממנו ליצור חשבון חדש.
בזמן שהמשתמש מחובר לאפליקציה, האפליקציה יכולה לגשת לכתובת האימייל שלו ולמזהה משתמש ייחודי. האפליקציה יכולה גם לזהות אם המשתמש הנוכחי הוא אדמין (נקרא גם "משתמש אדמין"), וכך קל להטמיע באפליקציה אזורים שזמינים רק לאדמינים.
אימות משתמשים
בדוגמה הבאה מוצגת הודעת פתיחה למשתמש שנכנס לאפליקציה, עם קישור ליציאה מהחשבון. אם המשתמש לא מחובר לחשבון, האפליקציה מציעה קישור לדף הכניסה לחשבונות Google.
קודם כול, מייבאים את המודול google.appengine.api.users.
אחר כך משתמשים בו כדי לקבל מידע על המשתמש:
אכיפת כניסה וגישת אדמין באמצעות app.yaml
אם יש לכם דפים שנדרשת כניסה כדי לגשת אליהם, אתם יכולים לאכוף את זה בקובץ app.yaml.
אם משתמש ניגש לכתובת URL שמוגדרת ככזו שנדרשת כניסה כדי לגשת אליה, והמשתמש לא מחובר, App Engine מפנה את המשתמש לדף הכניסה המתאים של Google, ואז מפנה אותו חזרה לכתובת ה-URL של האפליקציה אחרי שהוא נכנס או נרשם בהצלחה.
כדי ללמוד איך להגדיר אימות לכתובות URL, אפשר לעיין במאמר בנושא דרישת התחברות או סטטוס אדמין בהפניה ל-app.yaml.
אפשרויות אימות
האפליקציה יכולה לאמת משתמשים באמצעות אחת מהאפשרויות הבאות:
- חשבון Google.
- חשבון בדומיין שלכם ב-Google Workspace
בחירת אפשרות אימות
אחרי שיוצרים את האפליקציה, אפשר לבחור את אפשרות האימות שרוצים להשתמש בה. כברירת מחדל, האפליקציה תשתמש בחשבונות Google לאימות. כדי לבחור אפשרות אחרת, כמו דומיין Google Workspace, עוברים אל דף ההגדרות של הפרויקט במסוף Google Cloud ולוחצים על עריכה. בתפריט הנפתח Google authentication (אימות Google), בוחרים את סוג האימות הרצוי ולוחצים על Save (שמירה).
כניסה לחשבון ויציאה ממנו
אפליקציה יכולה לזהות אם משתמש נכנס לאפליקציה באמצעות אפשרות האימות שנבחרה לאפליקציה. אם המשתמש לא מחובר, האפליקציה יכולה להפנות אותו לחשבונות Google כדי להיכנס או ליצור חשבון Google חדש. האפליקציה מקבלת את כתובת ה-URL של דף הכניסה על ידי קריאה לשיטה של Users API. האפליקציה יכולה להציג את כתובת ה-URL הזו כקישור, או להנפיק הפניה אוטומטית של HTTP לכתובת ה-URL כשהמשתמש נכנס לדף שנדרש בו אימות.
אם האפליקציה שלכם משתמשת בחשבונות Google או ב-Google Workspace לאימות, השם של האפליקציה מופיע בדף הכניסה כשהמשתמש נכנס לאפליקציה. השם שמוצג הוא שם האפליקציה שציינתם כשנרשמתם לאפליקציה. אפשר לשנות את השם בשדה שם האפליקציה בדף פרטי הכניסה במסוף Google Cloud .
אחרי שהמשתמש נכנס לחשבון Google או יוצר חשבון, הוא מופנה חזרה לאפליקציה שלכם. האפליקציה מספקת את כתובת ה-URL להפניה אוטומטית לשיטה שיוצרת את כתובת ה-URL לכניסה.
ה-Users API כולל שיטה ליצירת כתובת URL ליציאה מהאפליקציה. כתובת ה-URL ליציאה מבטלת את האימות של המשתמש באפליקציה, ואז מפנה אותו חזרה לכתובת ה-URL של האפליקציה בלי להציג דבר.
משתמש לא מחובר לאפליקציה עד שהוא מתבקש לעשות זאת על ידי האפליקציה ומזין את כתובת האימייל והסיסמה של החשבון שלו. זה נכון גם אם המשתמש נכנס לאפליקציות אחרות באמצעות חשבון Google שלו.
גישה לפרטי החשבון
בזמן שהמשתמש מחובר לאפליקציה, האפליקציה יכולה לגשת לכתובת האימייל של החשבון בכל בקשה שהמשתמש שולח לאפליקציה. האפליקציה יכולה גם לגשת למזהה משתמש שמזהה את המשתמש באופן ייחודי, גם אם המשתמש משנה את כתובת האימייל של החשבון שלו.
האפליקציה יכולה גם לקבוע אם המשתמש הנוכחי הוא אדמין באפליקציה. משתמש אדמין הוא כל משתמש שיש לו תפקיד של צפייה, עריכה, בעלים או אדמין ב-App Engine. אתם יכולים להשתמש בתכונה הזו כדי ליצור תכונות ניהול לאפליקציה, גם אם אתם לא מאמתים משתמשים אחרים. ממשקי ה-API של Go, Java, PHP ו-Python מאפשרים להגדיר כתובות URL כ'למנהלים בלבד'.
משתמשים ו-Datastore
ה-API של שירות Users יכול להחזיר את פרטי המשתמש הנוכחי כאובייקט User.
אפשר לאחסן אובייקטים של משתמשים כערך מאפיין במאגר הנתונים, אבל אנחנו ממליצים מאוד להימנע מכך כי זה כולל את כתובת האימייל יחד עם המזהה הייחודי של המשתמש. אם משתמש משנה את כתובת האימייל שלו, והשוואתם את הערך הישן של User ששמור במערכת לערך החדש של User, לא תהיה התאמה ביניהם. במקום זאת, כדאי להשתמש בUser
ערך User ID כמזהה הייחודי הקבוע של המשתמש.
חשבונות Google ושרת הפיתוח
שרת הפיתוח מדמה את מערכת חשבונות Google באמצעות מסך כניסה מזויף. כשהאפליקציה קוראת ל-Users API כדי לקבל את כתובת ה-URL של מסך הכניסה, ה-API מחזיר כתובת URL מיוחדת של שרת פיתוח שמבקשת כתובת אימייל, אבל לא סיסמה. אפשר להקליד כל כתובת אימייל בהנחיה הזו, והאפליקציה תתנהג כאילו נכנסתם לחשבון עם הכתובת הזו.
מסך הכניסה המזויף כולל גם תיבת סימון שמציינת אם החשבון המזויף הוא חשבון אדמין, כלומר אם לחשבון יש תפקיד של צפייה, עריכה, בעלות או אדמין ב-App Engine. אם מסמנים את התיבה הזו, האפליקציה תתנהג כאילו אתם מחוברים באמצעות חשבון אדמין.
באופן דומה, Users API מחזיר כתובת URL ליציאה שמבטלת את הכניסה המזויפת.
המזהה הייחודי של אובייקט User בשרת הפיתוח מחושב מכתובת האימייל. שתי כתובות אימייל ייחודיות תמיד מייצגות שני משתמשים ייחודיים בשרת הפיתוח.