typescript - Ποια είναι η μορφή των διαπιστευτηρίων στο JsonServiceClient του ServiceStack;
Προσπαθώ να χρησιμοποιήσω τον TypeScript JsonServiceClient του ServiceStack, και λειτουργεί καλά με διαδρομές που δεν απαιτούν αυθεντικοποίηση, αλλά δεν μπορώ να βρω καμία τεκμηρίωση σχετικά με το πώς να τον χρησιμοποιήσω με διαδρομές που απαιτούν αυθεντικοποίηση.
Χρησιμοποιώ βασική αυθεντικοποίηση, και μπορώ να την κάνω να λειτουργήσει αν ορίσω χειροκίνητα την κεφαλίδα εξουσιοδότησης, αλλά βλέπω ότι το JsonServiceClient έχει ιδιότητα credentials που είναι μια συμβολοσειρά.
Σε ποιο μορφότυπο πρέπει να είναι αυτή η συμβολοσειρά διαπιστευτηρίων για να χρησιμοποιηθεί η βασική πιστοποίηση (ή οποιοσδήποτε άλλος πάροχος πιστοποίησης) και πώς μπορώ να διασφαλίσω ότι η κεφαλίδα βασικής πιστοποίησης στέλνεται σε κάθε αίτημα;
Ξέρω ότι δεν θα έπρεπε να χρειάζεται να ρυθμίζω την κεφαλίδα εξουσιοδότησης χειροκίνητα σαν ένας σπηλαιονθρώπος.
Απάντηση #1
Αν έχετε καταχωρίσει τον CredentialsAuthProvider, μπορείτε να αυθεντικοποιηθείτε με ένα κανονικό Αίτημα Ιστοσελίδας (Web Service Request), π.χ.:
var client = new JsonServiceClient(baseUrl);
client.Post(new Authenticate {
provider = "credentials",
UserName = userName,
Password = password,
RememberMe = true,
});
Εάν είναι επιτυχές (δηλαδή δεν προκαλεί σφάλμα), το ServiceClient θα γεμίσει με τα Session Cookies του ServiceStack, επιτρέποντάς του να πραγματοποιεί αιτήματα με αυθεντικοποίηση.
Αν έχετε ενεργοποιημένο το HTTP Basic Auth, δηλαδή έχετε καταχωρίσει τον BasicAuthProvider, τότε μπορείτε να χρησιμοποιήσετε τις ενσωματωμένες ιδιότητες Username/Password για να στείλετε τα διαπιστευτήρια HTTP Basic Auth με κάθε αίτημα, π.χ:
var client = new JsonServiceClient(baseUrl) {
UserName = userName,
Password = password
};
Μερικές άλλες επιλογές για την αυθεντικοποίηση με τον Πελάτη Υπηρεσίας είναι να καθορίσετε ένα Κλειδί API αν έχετε εγγράψει τον ApiKeyAuthProvider ή να καθορίσετε ένα JWT Token αν χρησιμοποιείτε τον JwtAuthProvider.
