מופע של המחלקה
User
מייצג משתמש. המופעים של המשתמשים הם ייחודיים וניתנים להשוואה. אם שני מופעים שווים, הם מייצגים את אותו משתמש.
האפליקציה יכולה לגשת למופע של המשתמש עבור המשתמש הנוכחי על ידי קריאה לפונקציה
users.get_current_user()
.
אפשר להשתמש בפונקציה
users.get_current_user()
בלי קשר לאפשרות האימות שבה האפליקציה משתמשת.
אפשר גם ליצור מופע של User מכתובת אימייל:
user = users.User("Albert.Johnson@example.com")
לחלופין, אם יש לכם federated_identity, אתם יכולים להשתמש בו כדי ליצור מופע של User:
user = users.User(federated_identity="http://example.com/id/ajohnson")
אם הפונקציה User constructor נקראת עם כתובת אימייל שלא תואמת לחשבון Google תקין, האובייקט ייווצר אבל הוא לא יתאים לחשבון Google אמיתי. זה יקרה גם אם מישהו ייצור חשבון Google עם כתובת האימייל שצוינה אחרי שהאובייקט יישמר. ערך של משתמש עם כתובת אימייל שלא מייצגת חשבון Google בזמן היצירה שלו, אף פעם לא יתאים לערך של משתמש שמייצג משתמש אמיתי.
כשמריצים את האפליקציה בשרת פיתוח להצגה באינטרנט (development web server), כל אובייקט User נחשב כחשבון Google תקין כשהוא מאוחסן במאגר הנתונים (המדומה).
אובייקט המשתמש של משתמש תקף יכול לספק ערך מזהה ייחודי למשתמש, שנשאר זהה גם אם המשתמש משנה את כתובת האימייל שלו. השיטה
user_id()
מחזירה את המזהה הזה, שהוא ערך מסוג
str
.
אובייקט המשתמש זהה לא משנה באיזו שיטת אימות האפליקציה משתמשת.
שימוש בערכי משתמשים ב-Datastore
מזהה המשתמש הוא קבוע, ואפשר להשתמש בו בשם של מפתח או כמאפיין מחרוזת. לכן, כשמשתמשים בערכי משתמשים, כדאי לאחסן את מזהה המשתמש (ואולי גם את כתובת האימייל האחרונה שנראתה כדי לתקשר עם המשתמש באימייל). בדוגמה שלמטה אפשר לראות איך משווים בין המשתמש הנוכחי לבין מזהה משתמש:
מומלץ מאוד לא לאחסן UserProperty, כי הוא כולל את כתובת האימייל יחד עם המזהה הייחודי של המשתמש. אם משתמש משנה את כתובת האימייל שלו ואתם משווים את הערך הישן של User ששמור במערכת לערך החדש של User, הם לא יהיו זהים. במקום זאת, כדאי להשתמש בUser ערך User ID כמזהה ייחודי יציב של המשתמש.