Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Πώς διαχειρίζεται η InertiaJS τον έλεγχο ταυτότητας και την εξουσιοδότηση σε SPA


Πώς διαχειρίζεται η InertiaJS τον έλεγχο ταυτότητας και την εξουσιοδότηση σε SPA


Ακολουθεί ο τρόπος με τον οποίο το Inertia.js διαχειρίζεται τον έλεγχο ταυτότητας και την εξουσιοδότηση σε εφαρμογές μιας σελίδας (SPA):

Αυθεντικοποίηση

1. Το Inertia.js δεν απαιτεί ειδικό σύστημα ελέγχου ταυτότητας όπως το OAuth. Αντίθετα, σας επιτρέπει να χρησιμοποιείτε το σύστημα ελέγχου ταυτότητας που παρέχεται από το πλαίσιο διακομιστή σας, όπως το σύστημα ελέγχου ταυτότητας που βασίζεται σε συνεδρία στο Laravel. [3]

2. Τα κιτ εκκίνησης της Laravel, Breeze και Jetstream, παρέχουν εξωγενή σκαλωσιά για νέες εφαρμογές Inertia.js, συμπεριλαμβανομένης της λειτουργικότητας ελέγχου ταυτότητας. [3]

3. Για να αποκτήσετε πρόσβαση στον πιστοποιημένο χρήστη στα στοιχεία Inertia.js, μπορείτε να χρησιμοποιήσετε τη μέθοδο «Inertia.share()» για να μεταφέρετε τον πιστοποιημένο χρήστη ως βάση στις σελίδες σας. [4]

Εξουσιοδότηση

1. Για εξουσιοδότηση που βασίζεται σε τύπους πόρων (π.χ., μπορεί ο χρήστης να δει τη λειτουργική μονάδα αναρτήσεων ή να δημιουργήσει μια νέα ανάρτηση), μπορείτε να περάσετε τους ελέγχους εξουσιοδότησης ως στηρίγματα στα στοιχεία της σελίδας Inertia.js. [1][2]

2. Για να ελέγξετε την εξουσιοδότηση για συγκεκριμένες οντότητες πόρων (π.χ., μπορεί ο χρήστης να επεξεργαστεί μια συγκεκριμένη ανάρτηση), μπορείτε να προσθέσετε ένα χαρακτηριστικό «άδειες» στα Eloquent μοντέλα σας που περιέχει τους ελέγχους εξουσιοδότησης για αυτήν την οντότητα. Στη συνέχεια, μπορείτε να μεταβιβάσετε αυτά τα δεδομένα «δικαιωμάτων» ως βάση στα στοιχεία Inertia.js. [4]

3. Το κλειδί είναι να εκτελέσετε τους ελέγχους εξουσιοδότησης από την πλευρά του διακομιστή και στη συνέχεια να μεταβιβάσετε τα αποτελέσματα στα στοιχεία Inertia.js ως στηρίγματα. Αυτό διασφαλίζει ότι η λογική εξουσιοδότησης δεν εκτίθεται στην πλευρά του πελάτη, κάτι που θα μπορούσε να παραβιαστεί. [4]

4. Το Inertia.js δεν παρέχει το δικό του σύστημα εξουσιοδότησης, αλλά μάλλον ενσωματώνεται με το σύστημα εξουσιοδότησης του πλαισίου από την πλευρά του διακομιστή σας (π.χ. Laravel's Gate and Policies). [4]

Συνοπτικά, το Inertia.js διαχειρίζεται τον έλεγχο ταυτότητας αξιοποιώντας το σύστημα ελέγχου ταυτότητας του πλαισίου από την πλευρά του διακομιστή σας και χειρίζεται την εξουσιοδότηση εκτελώντας τους ελέγχους από την πλευρά του διακομιστή και μεταβιβάζοντας τα αποτελέσματα ως στηρίγματα στα στοιχεία Inertia.js. Αυτή η προσέγγιση διασφαλίζει ότι η λογική ελέγχου ταυτότητας και εξουσιοδότησης διατηρείται ασφαλής από την πλευρά του διακομιστή.

Αναφορές:
[1] https://inertiajs.com/authorization
[2] https://legacy.inertiajs.com/authorization
[3] https://inertiajs.com/authentication
[4] https://sebastiandedeyne.com/handling-authorization-in-a-laravel-and-inertia-application
[5] https://www.youtube.com/watch?v=1xHfpDhuPzA