typescript - מה הפורמט של אישורי גישה ב-JsonServiceClient של ServiceStack?


אני מנסה להשתמש ב-JsonServiceClient של ServiceStack ב-TypeScript, וזה עובד היטב עם נתיבים שלא דורשים אימות, אבל אני לא מצליח למצוא שום תיעוד על איך להשתמש בזה עם נתיבים שמחייבים אימות.

אני משתמש באימות בסיסי, ואני יכול לגרום לזה לעבוד אם אני מגדיר ידנית את כותרת האישור, אבל אני רואה של-JsonServiceClient יש מאפיין של אישורים שהוא מחרוזת.

באיזה פורמט צריך להיות מחרוזת האישורים הזו כדי להשתמש באימות בסיסי (או בכל ספקי אימות אחרים) ואיך אני מוודא שכותרת האימות הבסיסי נשלחת בכל בקשה?

אני יודע שלא הייתי אמור להגדיר את כותרת ההרשאה ידנית כמו אדם פרימיטיבי.

תשובה #1

אם רשמת את CredentialsAuthProvider תוכל לאמת באמצעות בקשת שירות אינטרנט רגילה, לדוגמה:

var client = new JsonServiceClient(baseUrl);
client.Post(new Authenticate {
    provider = "credentials",
    UserName = userName,
    Password = password,
    RememberMe = true,
});

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

אם הפעלת אימות בסיסי ב-HTTP, כלומר רשמת את BasicAuthProvider, אז תוכל להשתמש בתכונות שם המשתמש/סיסמה המובנות כדי לשלוח פרטי אימות בסיסי ב-HTTP עם כל בקשה, כלומר:

var client = new JsonServiceClient(baseUrl) {
    UserName = userName,
    Password = password
};

אפשרות נוספת לאימות עם שירות הלקוח היא לציין מפתח API אם נרשמת ל-ApiKeyAuthProvider או לציין אסימון JWT אם משתמשים ב-JwtAuthProvider.