coldfusion / יצירת תכונת לוג-אין משתמש עם Coldfusion / שמירת מידע לוג-אין על הלקוח
שמירת מידע לוג-אין על הלקוח
תוך כדי שמשתמשים גולשים באתר שלכם בחיפוש אחר הדרך המושלמת לשלב בין כרוב לבין בשר יען באותה ארוחה, אתם צריכים לוודא שהאתר יכול לזכור מי המשתמש שלכם וירשה אותו לדפים מוגנים. זה לא אמור להיות מסובך מדי. פשוט שמרו את המידע על הלקוח. חשוב לשים לב שאנחנו עושים שימוש במספר שיטות שמירה שונות פה, עם משתני סשנים וקוקיס, מה שאומר שתהיה לנו קצת יתירות אם למשתמש יש קוקיס כבויים או דפדפן לא סטנדרטי.
כדי להימנע מהסתמכות על קוקיס בלבד (שעלולים או עלולים לא להיות מהימנים כמנגנון אחסון מידע), נאחסן את המידע הרלוונטי על המשתמש במשתני סשנים כנקודת הגישה העיקרית שלנו. נאחסן אותם גם בקוקיס כדי למנוע timeout מוקדם, אבל בדרך כלל נעשה שימוש במשתני הסשנים , מאחר וזה מקובל יותר. נרצה להשתמש בקוקיס כגיבוי מאחר ולמשתני סשנים יש אורך חיים מוגבל, שנקבע ע"י אורך ה-timeout המוגדר בשרת. הקוקיס אמורים לספק למשתמש יציבות רבה יותר כאשר הוא גולש באתר לאורך זמן.
ראשית, כדי שתביטו בקובץ application.cfm. זה אמור לתת לכם מושג ראשוני לגבי הדרך בה נאתחל את משתני הסשנים. אתם רוצים שהקוד שלכם יוכל להתייחס למשתני הסשנים, ואין שום צורך שתציבו ביטויי <cfparam> או
<cfif IsDefined()>בכל מקום בקוד. ואתם רוצים שמשתמשים חדשים יצטרכו לבצע לוג-אין, אז פשוט תייצרו את המשתנים והיפטרו מהם ברגע שהסשן נוצר. תוכלו לראות בקובץ application.cfm כיצד אנחנו מאתחלים את המשתנים הללו בעזרת הביטוי <cfparam>. בצורה הזאת, בכל פעם שמשתמשים חדשים מבקרים באתר או משתמשים ותיקים חוזרים אליו, הם מתחילים עם דף חלק.
ברגע שאימתנו את זהות המשתמש ומצאנו את כל המידע אותו אנחנו מעונינים לשמור, נכתוב את הערךUserID לתוך משתנה הסשן Session.UserID. פשוט, לא? בצורה הזאת, מידע המשתנה מאוחסן על השרת במשתנה סשן, ומתייחס לסשנים מיוחדים המזהים מידע וממוקמים על שרת הלקוח בעזרת coldfusion.
אז מה עם גיבוי הקוקיס החשוב כל כך?
כולנו יודעים שסשנים מבצעים timeout, לא משנה כמה גבוה תקבעו את ערך ה-timeout שלכם, ומשתמשים יעזבו בסופו של דבר את האתר. לכן נשמור את כל המידע גם בקוקי. זה אמור להיות יחסית פשוט עבורכם אם קראתם את המאמר השני שלי, אז אני לא מתכוון להרחיב בנושא.
דבר אחד שחשוב לזכור הוא שאתם יכולים לקבוע בטופס שלכם האם אתם רוצים לשמור את הערכים לתקופה בלתי מוגבלת על מחשב המשתמש או לשמור אותם לתקופת פעילות הסשן בלבד. פשוט הוסיפו checkbox לטופס הלוג-אין שלכם עם קצת טקסט לידו בסגנון "שמור את הלוג-אין שלי כדי שלא אצטרך לזכור סיסמא נוספת", כך:
<input type="checkbox" name="ExpireCookie"> Save my login so I don't have to remember another password
אז, ב-login2.cfm שלכם, בחרו את הערך ב-checkbox הזה לפני שאתם מאחסנים אותו לתוך קוקי. Coldfusion תגדיר את ה-checkbox הזה רק אם הוא לא ריק, לכן תצטרכו לקודד בהתאם, תוך בדיקת הקיימות שלו.
<cfif IsDefined("Form.ExpireCookie")> <cfcookie name="UserID" value="#GetUser.UserID#" Expires="NEVER"> <cfelse> <cfcookie name="UserID" value="#GetUser.UserID#"> </cfif>
קבצי הדוגמא שלי יוצאים מתוך נקודת הנחה שמשתמשים לא רוצים להכניס סיסמא יותר מפעם אחת, לכן תמיד נשמור את הקוקי עם EXPIRES = "NEVER"
מוגדר בתווית cfcookie.
אז עכשיו שאתם יודעים מי המשתמשים שלכם, שמרתם אותם בתוך משתני סשנים ועל המחשבים שלהם, הגיע הזמן להמשיך הלאה וסוף סוף לתת להם לראות את התוכן שלכם. פשוט יחסית - אתם יכולים פשוט לייבא את התוכן מהעמוד "post-login". אבל המשיכו לקרוא, ותראו שאנחנו יכולים להגן על האתר שלכם מפני עיני הנץ שבאינטרנט.
עמוד הבא: בדיקת מידע לוג-אין עמוד אחרי עמוד >>
|