ব্যবহারকারী নিবন্ধকরণের পরে স্বয়ংক্রিয় লগইন


15

আমি আমার উদ্দেশ্যে পরিবর্তিত একটি প্লাগইন ব্যবহার করছি।

আমি পরে যা আছি তা ব্যবহারকারীরা স্বয়ংক্রিয়ভাবে সেগুলিতে লগ ইন করে বর্তমান পৃষ্ঠায় ফিরিয়ে আনার জন্য এটি নিবন্ধভুক্ত করার পরে। এই মুহুর্তে এটি তাদের ব্যবহারকারীর নাম এবং পাসওয়ার্ড সহ একটি ইমেল প্রেরণ করে। তাদের তখন সেই বিবরণগুলি ব্যবহার করে লগ ইন করতে হবে।


আপনি কি ডিফল্ট রেজিস্টার ফর্ম বা একটি কাস্টম ব্যবহার করছেন?
বেন্টারনেট

একটি কাস্টম তবে এটি পুনর্নির্দেশগুলির উপর ভিত্তি করে তাই ডিফল্ট সিস্টেমের সাথে কাজ করার জন্য ডিজাইন করা কোডগুলি ভালভাবে কাজ করতে পারে এবং যদি না হয় তবে আমি সম্ভবত এটিকে সংশোধন করতে পারি।
রবিন আই নাইট

আমি মনে করি আমার উল্লেখ করা উচিত যে নিবন্ধকরণে কোনও ব্যবহারকারীকে স্বয়ংক্রিয়ভাবে লগ ইন করা লগইন সুরক্ষার অংশটিকে আটকায়। সাধারণত, কোনও ব্যবহারকারী কোনও বৈধ ইমেল ঠিকানা সরবরাহ না করে লগইন করতে পারবেন না। ব্যবহারকারীর নিবন্ধন করতে হবে, একটি ইমেল গ্রহণ করতে হবে, তারপরে লগইন করতে হবে। আপনি যদি ইমেল পদক্ষেপটি সরিয়ে ফেলেন তবে আপনার ব্যবহারকারীরা ভুয়া ঠিকানা দিয়ে নিবন্ধন করতে পারবেন, স্বয়ংক্রিয়ভাবে লগ ইন হতে পারে এবং আপনার ডিফল্ট গ্রাহকরা যা কিছু করতে পারেন তা ব্যাকএন্ডে, মন্তব্য করতে সক্ষম হতে পারবেন। কার উপকার হবে? একজনের জন্য স্প্যামারস। হ্যাকাররাও প্রকাশিত হতে পারে এমন কোনও ঠিকানা না দিয়ে আপনার ব্যাকএন্ডের ছিদ্রগুলির জন্য ঝাঁকুনি দিতে পছন্দ করবে।
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 () সরবরাহ করার আগ্রহ নেই কারণ এটি ইমেল করে।
রবিন আই নাইট

5

নিবন্ধকরণ প্রক্রিয়াটি হুক করার কোনও আদর্শ জায়গা নেই। আমি মনে করি একটি ব্যবহারকারীর রেজিস্ট্রেশন ইভেন্ট ক্রিয়াকলাপটি কোরটিতে যুক্ত করার জন্য একটি শক্তিশালী কেস রয়েছে। তবে আমি মনে করি আপনি সম্ভবত এটিকে নকল করতে সক্ষম হবেন। কোনও ব্যবহারকারী সফলভাবে নিবন্ধভুক্ত হওয়ার পরে ঘটে যাওয়া সর্বশেষ জিনিসগুলির মধ্যে একটি হ'ল 'ডিফল্ট_পাসওয়ার্ড_নাগ' নামে একটি ব্যবহারকারী বিকল্প তৈরি করা। আমরা এটির জন্য দেখার জন্য একটি ক্রিয়া তৈরি করতে পারি এবং এটি সেট হয়ে গেলে ব্যবহারকারীকে সেট আপ করতে পারি।

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
ইউজার_জিস্টার হুক ইন করার জন্য বেশ সুন্দর জায়গা, এর জন্য আমার কি মনে হয়?
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' );

এই নিবন্ধকরণটি নিশ্চিত করার জন্য এখনও একটি ইমেল পাঠানো উচিত? আমি আর এটি পাচ্ছি না।
কোডেকবয়

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.