it-swarm.asia

تسجيل الدخول عبر البريد الإلكتروني بدلاً من اسم المستخدم

لا يمكنني العثور على ما إذا كان من الممكن أم لا تغيير نظام تسجيل الدخول باستخدام الزوجين (البريد الإلكتروني وكلمة المرور) بدلاً من (اسم المستخدم وكلمة المرور).

أعتقد أن الناس لا يتذكرون أبدًا أسماء المستخدمين الخاصة بهم عندما لا يكونون متاحين كما يريدون ، لذا اضطروا إلى إضافة رقم في نهاية الأمر ...

12
Julio Guerra

كل من تسجيل الدخول إلى Toboggan و تسجيل البريد الإلكتروني تتيح الوحدات للمستخدمين استخدام بريدهم الإلكتروني عند تسجيل الدخول.

19
user842

للسماح بكل من اسم المستخدم والبريد الإلكتروني: قم أولاً بإضافة أداة التحقق

function YOURMODULE_form_user_login_alter(&$form, &$form_state, $form_id) {
    $form['#validate'][1] = 'YOURMODULE_form_user_login_replace_email_validate';
    $form['#validate'][2] = 'user_login_authenticate_validate';
    $form['#validate'][3] = 'user_login_final_validate';
}

ثم تحقق مما إذا كان يبدو وكأنه عنوان بريد إلكتروني (يحتوي على @ ، ورسائل قبل وبعد @ وعلى الأقل 1 '.' بعد @). إذا كان الأمر كذلك ، فاستبدل البريد الإلكتروني باسم المستخدم:

function YOURMODULE_form_user_login_replace_email_validate(&$form, &$form_state) {

    $name = $form_state['values']['name'];
    if (strpos($name, '@')) {
        $mailParts = explode('@', $name);
        if ((int)count($mailParts) === 2) {
            $extParts = explode('.', $mailParts[1]);
            if (count($extParts) > 1) {
                $query = db_select('users', 'u');
                $query->distinct();
                $query->fields('u', ['uid']);
                $query->fields('u', ['name']);
                $query->fields('u', ['mail']);
                $query->condition('u.mail', $name, '=');
                $result = $query->execute()->fetchAllAssoc('name');

                if (!empty($result)) {
                    $name = array_keys($result)[0];
                    $form_state['values']['name'] = $name;
                }
            }
        }
    }
}

كان لدي موقف محدد عندما اضطررت إلى إضافة المصادقة المستندة إلى البريد الإلكتروني إلى موقع العمل مع الكثير من المستخدمين الذين تركوا المصادقة "القديمة" تعمل ، وقمت بذلك بطريقة.

0
VikDru

قام المطور بنقل وحدة نمطية تلبي احتياجاتك من وضع الحماية إلى صفحة المشروع: https://www.drupal.org/project/login_email

الوحدة النمطية موجودة على أنها 7.x-1.x-dev تعمل كما هي ... يبدو أن القليل من المساعدة يمكن أن يحول ذلك إلى إصدار رسمي.

0
JoeMaine