wordpress

Σύνδεση στο WordPress με e-mail αντί για όνομα χρήστη

Από προεπιλογή το WordPress χρησιμοποιεί ένα μοναδικό όνομα χρήστη για κάθε χρήστη που είναι εγγεγραμμένος στην ιστοσελίδα. Wordpress

Το όνομα αυτό χρησιμοποιείται κάθε φορά που ο χρήστης επιθυμεί να εισέλθει στη σελίδα, καθιστώντας πολύ εύκολο στους hackers να έχουν τις μισές πιθανότητες επιτυχίας σε ένα brute force attack, εφόσον γνωρίζουν το όνομα.

Η ακόλουθη δημοσίευση περιγράφει πως θα αλλάξετε την προεπιλεγμένη ρύθμιση του WordPress, ούτως ώστε οι χρήστες τις ιστοσελίδας σας να συνδέονται χρησιμοποιώντας το e-mail τους αντί το όνομα χρήστη.

Για να το κάνουμε θα χρησιμοποιήσουμε το wp_authenticate δράσης το οποίο τρέχει από το WοrdPress για τον έλεγχο ταυτότητας του χρήστη. Θα πρέπει να γνωρίζετε ότι σε κάθε ενημέρωση λογισμικού από την WοrdPress θα πρέπει να πραγματοποιείτε τα ίδια βήματα που περιγράφουμε παρακάτω.

Ουσιαστικά θα αλλάξουμε την τιμή $username (το οποίο είναι το όνομα χρήστη που εμφανίζει η φόρμα σύνδεσης). Έτσι μπορούμε να προσθέσουμε το e-mail του χρήστη.

Χρησιμοποιήστε τον παρακάτω κώδικα

function email_login($username) {
 $user = get_user_by_email($username);
 if(!empty($user->user_login))  // if the email exists for a user return
 $username = $user->user_login; // user_login or else the same string is
 return $username; // returned for verification
}
add_action('wp_authenticate', 'email_login');

Είναι σημαντικό να γνωρίζετε ότι το συγκεκριμένο function λειτουργεί διαφορετικά από άλλα functions του WordPress στέλνοντας τις παραμέτρους σαν σημείο αναφοράς. Πράγμα που σημαίνει ότι το function αυτό θα είναι καλύτερα προσαρμοσμένο στον πυρήνα σαν φίλτρο. Αυτό απαιτεί από εσάς να πάρετε τις παραμέτρους, και να αλλάξετε τις τιμές και την επιστροφή τους.

Έτσι αν ο παραπάνω κώδικας δεν λειτουργεί ελέγξτε το αρχείο /wp-includes/user.php στη γραμμή 54 και θα δείτε το κώδικα

do_action_ref_array( 'wp_authenticate', array( &$credentials['user_login'], &$credentials['user_password'] ) );

Κανονικά, τα functions, χρησιμοποιούν τη λειτουργία

do_action ()

αλλά το συγκεκριμένο χρησιμοποιεί τη λειτουργία

do_action_ref_array ()

και περνά από τις τιμές αναφοράς.

Σε περίπτωση που δεν λειτουργεί για σας, αλλάξτε τον τύπο του function σε

do_action ()

iGuRu.gr The Best Technology Site in Greeceggns

Get the best viral stories straight into your inbox!















Written by giorgos

Ο Γιώργος ακόμα αναρωτιέται τι κάνει εδώ....

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Το μήνυμα σας δεν θα δημοσιευτεί εάν:
1. Περιέχει υβριστικά, συκοφαντικά, ρατσιστικά, προσβλητικά ή ανάρμοστα σχόλια.
2. Προκαλεί βλάβη σε ανηλίκους.
3. Παρενοχλεί την ιδιωτική ζωή και τα ατομικά και κοινωνικά δικαιώματα άλλων χρηστών.
4. Διαφημίζει προϊόντα ή υπηρεσίες ή διαδικτυακούς τόπους .
5. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).