ABA


"איך לאמת משתמשים בREST API?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21653 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21653
Bonito 
חבר מתאריך 22.9.09
14859 הודעות
   13:53   16.04.16   
אל הפורום  
  איך לאמת משתמשים בREST API?  
 
   אני מנסה להבין את הFLOW ולא מצליח כל כך, באתר רגיל אתה יוצר טוקן אחרי שהיוזר מתחבר בפעם הראשונה, מכניס תקוקי, עושה בדיקה מול הקוקי, בדיקת CSRF, מגדיר SESSIONS וכו'.

ממה שאני מבין בREST API אני לא אמור להשתמש בSESSIONS בכלל, איך מתבצע התהליך בעצם?
SSL CONNECTION:
1. יוזר מתחבר, אני שולח את היוזר והסיסמא מהאפליקציה לשרת API.
2. השרת בודק מול הDB אם היוזר והסיסמא מתאימים, אני יוצר טוקן.
3. אני מחזיר את הטוקן לאפליקציה והוא מאחסן אותו וכל פעם שהיוזר עושה פעולה שמצריכה את המשתמש אני שולח בקשה לשרת עם הטוקן ועושה בדיקה מול הSQL(נגיד ל loginCheck/)

זו הדרך הנכונה?


תודה.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  מכתב Beckham 16.04.16 22:12 1
     איך שלבים 5 ו6 מבוצעים בפועל? Bonito  17.04.16 12:58 2
         נראה לי שנפל לי האסימון Bonito  17.04.16 13:45 3
             כן, Beckham 17.04.16 15:15 4
                 תודה רבה על העזרה :) Bonito  17.04.16 16:16 5

       
Beckham
חבר מתאריך 18.3.02
2412 הודעות
   22:12   16.04.16   
אל הפורום  
  1. מכתב  
בתגובה להודעה מספר 0
 
כמעט נכון.

ה FLOW של JWT עובד ככה:

1. המשתמש מאומת עם שם משתמש \ סיסמא מול end point יעודי לאימות, לדוגמא localhost.com/api/token

2. אותו שרת מאמת את המשתמש ושולח בחזרה TOKEN - התוקן בנוי ממידע על היוזר וגם KEY מוצפן המכיל בתוכו את אותו מידע על היוזר אבל כאמור בצורה מוצפנת שרק אותו שרת יכול לפתוח.

3.כל בקשה מול ה REST API דורשת מהקליינט לצרף AUTHORIZARION HEADER המכיל את ה TOKEN

4. ה REST API בודק כל בקשה שמגיעה אליו להימצאות ה HEADER הנ"ל
5. במידה וה HEADER אכן נמצא נשלחת בקשה אל אותו שרת ייעודי מסעיף 1 לאימות של ה TOKEN
6. אותו שרת מאמת את ה TOKEN על ידי פיענוח של ה KEY המוצפן המצוי ב TOKEN

7. השרת מחזיר תשובה אל ה REST API אם הזיהוי הצליח.

ככה שמהרגע שה TOKEN נוצר אין צורך לפנות שוב ל DB כדי לאמת אותו. הוא גם לא מכיל את הסיסמא של היוזר.

שיב לב שבמקרה שלך אני מאמין שה REST API והשרת TOKEN נמצאים על אותו שרת מארח.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Bonito 
חבר מתאריך 22.9.09
14859 הודעות
   12:58   17.04.16   
אל הפורום  
  2. איך שלבים 5 ו6 מבוצעים בפועל?  
בתגובה להודעה מספר 1
 
   נגיד היוזר התחבר עם שם משתמש וסיסמא מוצלחים, שלחתי חזרה את הטוקן, עכשיו הטוקן מאוחסן באפליקציה, בכל בקשה אני מצרף את הטוקן לHEADERS.

מה שאני לא מבין איפה השרת תכלס "שומר" את הטוקן ואיך אני בודק אותו בעצם בלי לגשת כל פעם לDB?

תודה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Bonito 
חבר מתאריך 22.9.09
14859 הודעות
   13:45   17.04.16   
אל הפורום  
  3. נראה לי שנפל לי האסימון  
בתגובה להודעה מספר 2
 
   ערכתי לאחרונה בתאריך 17.04.16 בשעה 13:48 בברכה, Bonito
 
הטוקן בעצם מאחסן נגיד את הuserid, כשהיוזר שולח את הטוקן לשרת אני עושה בדיקה אם הטוקן תקני, אם הוא תקני, אני מפרק אותו לוקח את המידע שאני צריך(נגיד את הUSER ID) בשביל לעדכן את הSQL וכו'.

הבעיה היחידה שאני רואה עם זה, בגלל שזה טוקן שמתחדש, היוזר יצטרך כל פעם שהטוקן EXPIRED להתחבר מחדש עם השם משתמש והסיסמא?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Beckham
חבר מתאריך 18.3.02
2412 הודעות
   15:15   17.04.16   
אל הפורום  
  4. כן,  
בתגובה להודעה מספר 3
 
ערכתי לאחרונה בתאריך 17.04.16 בשעה 15:48 בברכה, Beckham
 
יש גם FLOW של refresh tokens שמאפשר להאריך תוקף ל-TOKEN.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Bonito 
חבר מתאריך 22.9.09
14859 הודעות
   16:16   17.04.16   
אל הפורום  
  5. תודה רבה על העזרה :)  
בתגובה להודעה מספר 4
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net