-
@mgm-ivr זה לא אמור להיות דבר קל... אז לא להיות מופתע שלא הצלחת.
כמו בכל בעיית תכנות (או כללית) הא' של הא' זה לפצל את הבעיה לחתיכות קטנות יותר ולפתור אותם בנפרד.
לשם כך, נוריד רגע את השפה מהסיפור מכיון שזה לא כל כך משנה. התשובה שלי לא יהיה ספציפית ל-PHP אלא לכל שפה. אם יש לך שאלה ספציפית בנוגע למימוש ב-PHP תשאל שוב אחרי שהבנת את העקרון הכללי.
טוב, עכשיו נקדים ונאמר א) התיעוד שלהם לוקה קצת בחסר... ב) לפי התיעוד שלהם אין שום API עבור התחברות למשתמש שלך על ידי שליחת שם משתמש וסיסמה.
(ואגב, הם מודים בפה מלא שה-API לא נוצר במחשבה תחילה עבור שימוש כ-API כללי, בעיקר זה נוצר עבור תקשורת של הפרונט-אנד עם הבק-אנד והדבר די ניכר.)אז איך עושים בקשות API עבור המשתמש שלך?
בתיעוד יש שתי אופציות:- להשתמש בקוקי בתוקף שלקחת מהדפדפן. השם של הקוקי שאתה צריך הוא
express.sid
.
מה שלא כתוב בתיעוד הוא שאם תשתשמש בקוקי תצטרך גם csrf token... - או אפשר ליצור טוקן שיאמת אותך. הטוקן הזה מייצרים בפאנל הניהול תחת settings > API Access ואז לוקחים את הטוקן ומכניסים אותו בהידר
Authorization
אחרי המילהbearer
.
למעשה, אפשר לעשות עוד משהו שלא כתוב בתיעוד וזה לשלוח בקשת לוגין עם הפרמטרים הנכונים ולקבל חזרה את הקוקי הנצרך.
(אני לא מאריך בכל פרט ופרט, אם משהו לא ברור תשאל. (אבל בבקשה שאלות ממוקדות ומפורטות))
- להשתמש בקוקי בתוקף שלקחת מהדפדפן. השם של הקוקי שאתה צריך הוא
-
@yossiz אמר בעזרה| תקשור בapi בשפת הphp לפלטפורמת nodebb:
@mgm-ivr זה לא אמור להיות דבר קל... אז לא להיות מופתע שלא הצלחת.
כמו בכל בעיית תכנות (או כללית) הא' של הא' זה לפצל את הבעיה לחתיכות קטנות יותר ולפתור אותם בנפרד.
לשם כך, נוריד רגע את השפה מהסיפור מכיון שזה לא כל כך משנה. התשובה שלי לא יהיה ספציפית ל-PHP אלא לכל שפה. אם יש לך שאלה ספציפית בנוגע למימוש ב-PHP תשאל שוב אחרי שהבנת את העקרון הכללי.
טוב, עכשיו נקדים ונאמר א) התיעוד שלהם לוקה קצת בחסר... ב) לפי התיעוד שלהם אין שום API עבור התחברות למשתמש שלך על ידי שליחת שם משתמש וסיסמה.
(ואגב, הם מודים בפה מלא שה-API לא נוצר במחשבה תחילה עבור שימוש כ-API כללי, בעיקר זה נוצר עבור תקשורת של הפרונט-אנד עם הבק-אנד והדבר די ניכר.)אז איך עושים בקשות API עבור המשתמש שלך?
בתיעוד יש שתי אופציות:- להשתמש בקוקי בתוקף שלקחת מהדפדפן. השם של הקוקי שאתה צריך הוא
express.sid
.
מה שלא כתוב בתיעוד הוא שאם תשתשמש בקוקי תצטרך גם csrf token... - או אפשר ליצור טוקן שיאמת אותך. הטוקן הזה מייצרים בפאנל הניהול תחת settings > API Access ואז לוקחים את הטוקן ומכניסים אותו בהידר
Authorization
אחרי המילהbearer
.
למעשה, אפשר לעשות עוד משהו שלא כתוב בתיעוד וזה לשלוח בקשת לוגין עם הפרמטרים הנכונים ולקבל חזרה את הקוקי הנצרך.
(אני לא מאריך בכל פרט ופרט, אם משהו לא ברור תשאל. (אבל בבקשה שאלות ממוקדות ומפורטות))
מכיוון שאני רוצה לעשות משהו שיעבוד בכל הפורומים
אני צריך ללכת על האופציה השלישית ושהכי נראית לי קל
לשלוח בקשת לוגין להתחברותאפשר לדעת על זה יותר פרטים?
- להשתמש בקוקי בתוקף שלקחת מהדפדפן. השם של הקוקי שאתה צריך הוא
-
@mgm-ivr
השלבים הם ככה:- שולחים בקשה עבור
/api/config
בתשובה תקבל א) קוקי בשם_csrf
וב) json עם הערךcsrf_token
(בתוך המון ערכים אחרים)
תשמור את המידע. - תשלח בקשת
POST
ל-/login
עם הגדרות אלו:- כותרת (הידר) כזה:
x-csrf-token: <csrf_token>
- צרף את הקוקי
_csrf
הנ"ל - ב-body תשלח שדות אלו:
username=<username>&password=<password>
- כותרת (הידר) כזה:
אם אתה בר מזל תקבל בתשובה מהשרת קוקי בשם
express.sid
שהוא הקוקי שמאמת אותך.מעתה והלאה, בכל בקשה שתשלח, תצרף את שני הקוקיז:
express.sid
ו-_csrf
. (השני נצרך רק בבקשות POST)בהצלחה.
- שולחים בקשה עבור
-
@שמואל4 אמר בעזרה| תקשור בapi בשפת הphp לפלטפורמת nodebb:
@yossiz אמר בעזרה| תקשור בapi בשפת הphp לפלטפורמת nodebb:
אם אתה בר מזל תקבל בתשובה מהשרת קוקי בשם express.sid שהוא הקוקי שמאמת אותך.
בעלי פורומים הרוצים למנוע פעולה כזו - בכלל במידה שזה יעבוד - פשוט מוסיפים recaptcha ב login ושלום...
למה למנוע?
הרי אני לא יוכל להגיע לניהול...
אלא רק להתחבר למשתמש שלי -