स्वचालित पंजीकरण के बाद उपयोगकर्ता पंजीकरण


15

मैं अपने उद्देश्यों के लिए संशोधित प्लगइन का उपयोग कर रहा हूं।

उपयोगकर्ता द्वारा स्वचालित रूप से उन्हें लॉग इन करने और उन्हें वर्तमान पृष्ठ पर वापस करने के लिए पंजीकृत करने के बाद मैं जो कुछ भी हूं, उसके बाद हूं। फिलहाल यह उन्हें उनके उपयोगकर्ता नाम और पासवर्ड के साथ एक ईमेल भेजता है। फिर उन्हें उन विवरणों का उपयोग करके लॉग इन करना होगा।


क्या आप डिफ़ॉल्ट रजिस्टर फॉर्म या कस्टम एक का उपयोग कर रहे हैं?
बैनटेनट

एक कस्टम एक लेकिन यह रीडायरेक्ट पर आधारित है इसलिए डिफ़ॉल्ट सिस्टम के साथ काम करने के लिए डिज़ाइन किए गए कोड अच्छी तरह से काम कर सकते हैं, और अगर नहीं तो मैं शायद इसे संशोधित कर सकता हूं।
रॉबिन I नाइट

मुझे लगता है कि मुझे यह इंगित करना चाहिए कि पंजीकरण सुरक्षा में उपयोगकर्ता में लॉगिंग सुरक्षा के भाग में स्वचालित रूप से लॉगिंग है। आमतौर पर, एक उपयोगकर्ता वैध ईमेल पता प्रदान किए बिना लॉगिन नहीं कर सकता है। उपयोगकर्ता को पंजीकरण करने, ईमेल प्राप्त करने, फिर लॉगिन करने की आवश्यकता है। यदि आप ईमेल चरण को हटाते हैं, तो आपके उपयोगकर्ता नकली पते के साथ पंजीकरण कर सकते हैं, स्वचालित रूप से लॉग इन हो सकते हैं, और बैकएंड पर प्राप्त करने में सक्षम हो सकते हैं, टिप्पणी करें, जो भी आपके डिफ़ॉल्ट ग्राहक कर सकते हैं। किसको होगा फायदा? स्पैमर, एक के लिए। हैकर्स को आपके बैकएंड में छेद के लिए चारों ओर प्रहार करना भी पसंद होगा, बिना कोई पता बताए।
s_ha_dum

एक विस्तृत ब्लॉग: sforsuresh.in/auto-login-wordpress
सुरेश कामरुशी

जवाबों:


10

मूल रूप से आप का उपयोग करने के लिए एक उपयोगकर्ता लॉग इन कर सकते हैं:

            //Login the user
    $creds = array();
    $creds['user_login'] = $login;
    $creds['user_password'] = $password;
    if ( !empty( $remember ) ){ 
        $creds['remember'] = true;
    }
    $user = wp_signon( $creds, true );

लेकिन यह केवल तभी है जब आपके पास पासवर्ड हो और लॉगिन करें ताकि आप अपना स्वयं का रजिस्टर फॉर्म बना सकें और इसे संसाधित कर सकें और उपयोगकर्ता स्वयं बना सकें

//Only after Everything has been validated, proceed with creating the user
        //Create the user
        $user_pass = wp_generate_password();
        $user = array(
            'user_login' => $username,
            'user_pass' => $user_pass,
            'first_name' => $firstname,
            'last_name' => $lastname,
            'user_email' => $email
        );
        $user_id = wp_insert_user( $user );

        /*Send e-mail to admin and new user - 
        You could create your own e-mail instead of using this function*/
        wp_new_user_notification( $user_id, $user_pass );

और यहां हमारे पास लॉगिन और पासवर्ड दोनों हैं ताकि आप उपयोगकर्ता को लॉग इन कर सकें।

उम्मीद है की यह मदद करेगा


2
क्या कोई पंजीकरण फ़िल्टर नहीं है जिसे हुक किया जा सकता है?
जैक

1
मुश्किल, बीमार अगर मैं इसे एकीकृत कर सकते हैं देखें। इसके बाद कोई आसान रास्ता नहीं है। मुझे लगता है कि यह एक अच्छा सुविधाजनक get_the_password () प्रदान करने में कोई दिलचस्पी नहीं है क्योंकि यह ईमेल करता है।
रॉबिन I नाइट

5

पंजीकरण प्रक्रिया में हुक लगाने के लिए एक आदर्श स्थान नहीं है। मुझे लगता है कि उपयोगकर्ता पंजीकरण इवेंट एक्शन हुक को कोर में जोड़ने के लिए एक मजबूत मामला है। लेकिन मुझे लगता है कि इस बीच आप इसे नकली कर सकते हैं। अंतिम चीजों में से एक जब उपयोगकर्ता सफलतापूर्वक पंजीकरण करता है, तो 'default_password_nag' नामक उपयोगकर्ता विकल्प का निर्माण होता है। हम इसके लिए देखने के लिए एक क्रिया बना सकते हैं, और जब यह सेट हो जाता है तो उपयोगकर्ता को सेट कर सकते हैं।

add_action('update_user_metadata', 'my_auto_login', 10, 4);

function my_auto_login( $metaid, $userid, $key, $value ) {
    // We only care about the password nag event. Ignore anything else.
    if ( 'default_password_nag' !== $key  && true !== $value) {
        return;
    }

    // Set the current user variables, and give him a cookie. 
    wp_set_current_user( $userid );
    wp_set_auth_cookie( $userid );
}

सिद्धांतहीन, लेकिन काम करना चाहिए।

अब जब हमारे पास एक विचार है कि मुझे क्या करना है, तो मैं विचार करता हूं कि मुझे लगता है कि यह एक बुरा विचार है, सुरक्षा-वार। लोग जंक ईमेल ड्रॉपबॉक्स सेट करने की परेशानी से गुजरने के बिना भी जंक अकाउंट बना सकते हैं। :)


1
user_register हुक करने के लिए काफी अच्छी जगह है, इसके लिए मुझे लगता है?
jsims281

1

मैं तो बस का उपयोग कर काम कर रहा है कि कार्यक्षमता पाने के लिए प्रबंधित किया है user_register हुक और मेरे में निम्न कोड functions.php :

// auto log in a user who has just signed up       
function auto_login_new_user( $user_id ) {
  wp_set_auth_cookie( $user_id, false, is_ssl() );
}
add_action( 'user_register', 'auto_login_new_user' );

क्या यह अभी भी पंजीकरण की पुष्टि करने के लिए एक ईमेल भेजना चाहिए? मुझे अब यह प्राप्त नहीं हो रहा है।
codecowboy

0
function login_after_register($userlogin,$userpass){
    $credentials = array( 'user_login' =>  $userlogin, 'user_password' => $userpass, 'remember' => true );

    $secure_cookie = is_ssl();

    $secure_cookie = apply_filters('secure_signon_cookie', $secure_cookie, $credentials);
    add_filter('authenticate', 'wp_authenticate_cookie', 30, 3);

    $user = wp_authenticate($credentials['user_login'], $credentials['user_password']);
    wp_set_auth_cookie($user->ID, $credentials["remember"], $secure_cookie);
    do_action('wp_login', $user->user_login, $user);
}

1
कृपया अपने कोड के साथ स्पष्टीकरण प्रदान करें।
s_ha_dum
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.