/

היום נדבר על אותנטיקציה (Authentication) ב-js . ישנם כל מיני דרכים לממש זיהוי ללקוח שלנו, החל מהרמה הכי בסיסית של שם משתמש וססמה שנשלחת לשרת ב-clear text ונשמרת בבסיס הנתונים ועד תעודה דיגיטלית שנשמרת במחשב של הלקוח או אפילו תעודה פיזית. אנחנו נדבר על שתי השיטות המרכזיות כיום :

1. JWT

2. Oauth

היום נתמקד ב-OAuth . מקובל לחשוב ש-OAuth הינו פרוטוקול\תקן של Authentication בעוד הוא באמת נועד ל- Authorization כלומר מתן הרשאות לצד שלישי לגשת למשאבים שבבעלותי ונמצאים בשרת אחר (למשל פרטי החשבון שלי בפייסבוק או גוגל). מה שאנו קוראים היום אותנטיקציה באמצעות OAuth זה בעיצום מימוש של תקן OAuth בשילוב של טוקן במבנה של JWT. כעת נרחיב מעט על ה-Flow של OAuth. לפני הכל האתר שרוצה לממש אצלו OAuth מבצע רישום אצל אותו שירות שברצונו לממש זיהוי דרכו ומקבל מאותו שירות מזהה ייחודי.

  • הלקוח מקיש על כפתור זיהוי באמצעות .. (גוגל, פייסבוק וכדו').

  • נפתח חלון הזדהות מול אותו שירות, ברגע זה מתבצע תהליך זיהוי מלא מול השרתים של אותו שירות.

  • מתבצע Redirect חזרה לאתר עם הבקשה המקורית לאותנטיקציה יחד עם פרטי גישה לנתונים אודות החשבון באותו שירות.

  • שרת האתר שלנו כעת מבצע גישה לשירות (פייסבוק, גוגל) ומבקש לזהות את הלקוח שלו.

  • לאחר הזיהוי האתר שלנו מקבל מזהה מהשירות (לפעמים שומר את המזהה ובעצם פותח לו חשבון באתר ולפעמים לא מבצע כל שימוש במזהה) ולאחר מכן מספק ללקוח גישה לאתר שלנו.

בכך אפשרנו ללקוח שלנו גישה לאתר שלנו ללא הצורך בהזנת פרטים מזהים כלשהם. הנה לינק לדוגמת קוד למימוש.