Προσδιορισμός εάν ο τρέχων χρήστης έχει πιστοποιηθεί

Determining If Current User Is Authenticated



Πρόβλημα

Θέλετε να δείτε αν ένας χρήστης είναι συνδεδεμένος.

Γνωρίζετε ότι το Laravel διατηρεί αυτόματα τον έλεγχο ταυτότητας του χρήστη στη συνεδρία. Θέλετε να ελέγξετε εάν το τρέχον αίτημα έχει έναν χρήστη συνδεδεμένο και πιστοποιημένο.







Λύση

Χρήση | _+_ |.



Το | _+_ | η μέθοδος επιστρέφει true ή false.



αν (Auth::έλεγχος())
{
πέταξε έξω 'Ναι! Είστε συνδεδεμένοι. '?
}

Συζήτηση

Πολλά πράγματα συμβαίνουν στα παρασκήνια όταν το κάνετε αυτό.





Το πρώτο Laravel ελέγχει εάν η τρέχουσα περίοδος σύνδεσης έχει το αναγνωριστικό χρήστη. Εάν ναι, τότε γίνεται προσπάθεια ανάκτησης του χρήστη από τη βάση δεδομένων.

Εάν αυτό αποτύχει, τότε η Laravel ελέγχει για το cookie Remember me. Εάν υπάρχει, τότε για άλλη μια φορά γίνεται προσπάθεια ανάκτησης του χρήστη από τη βάση δεδομένων.



Μόνο εάν ένας έγκυρος χρήστης ανακτηθεί από τη βάση δεδομένων είναι true επιστρέφεται.

Το φίλτρο 'επισκέπτης' χρησιμοποιεί αυτήν τη μέθοδο
Το Laravel παρέχει μια προεπιλεγμένη εφαρμογή του φίλτρου επισκεπτών στο | _+_ |.

Διαδρομή::φίλτρο('επισκέπτης', λειτουργία()
{
αν (Auth::έλεγχος()) ΕΠΙΣΤΡΟΦΗΔιευθύνω πάλιν::προς το('/')?
})?

Αυτή η προεπιλεγμένη εφαρμογή χρησιμοποιείται όταν θέλετε να προσθέσετε ένα φίλτρο σε μια διαδρομή που είναι προσβάσιμη μόνο από επισκέπτες (γνωστός και ως χρήστες που δεν είναι συνδεδεμένοι). Εάν ένας χρήστης είναι συνδεδεμένος, τότε ανακατευθύνεται στην αρχική σελίδα.