Plugin Directory

Changeset 3319801


Ignore:
Timestamp:
06/30/2025 09:03:46 AM (9 months ago)
Author:
buildecomteam
Message:

Updated to latest with login fixed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • buildecom/trunk/inc/api/class-api-auth.php

    r3316130 r3319801  
    6666        $lastName  = isset($params['lastname']) ? sanitize_text_field($params['lastname']) : '';
    6767
    68         $errors = array();
    69 
    7068        if (empty($username)) {
    71             $errors['error.username'] = 'Username is required.';
    72         }
     69            $errors[] = 'Error: The username field is empty.';
     70        }
     71
    7372        if (empty($password)) {
    74             $errors['error.password'] = 'Password is required.';
    75         }
     73            $errors[] = 'Error: The password field is empty.';
     74        }
     75
    7676        if (empty($email)) {
    77             $errors['error.email'] = 'Email is required.';
    78         }
     77            $errors[] = 'Error: The email field is empty.';
     78        }
     79
    7980        if (empty($firstName)) {
    80             $errors['error.firstname'] = 'First name is required.';
    81         }
     81            $errors[] = 'Error: The first name field is empty.';
     82        }
     83
    8284        if (empty($lastName)) {
    83             $errors['error.lastname'] = 'Last name is required.';
     85            $errors[] = 'Error: The last name field is empty.';
    8486        }
    8587
    8688        if (!empty($errors)) {
    87             return buildecom_response_error('missing_fields', $errors, [], 400);
     89            return buildecom_response_error('missing_fields', [ $errors], [], 400);
    8890        }
    8991
     
    202204    }
    203205
    204     public function get_token(WP_REST_Request $request)
    205     {
    206         $secret_key = defined('BUILDECOM_SECRET_KEY') ? BUILDECOM_SECRET_KEY : false;
    207 
    208         $body_params = (array) is_string($request->get_body()) ? json_decode($request->get_body()) : $request->get_body();
    209 
    210         $username    = $body_params?->username ?? '';
    211         $password    = $body_params?->password ?? '';
    212 
    213         if (! $secret_key) {
    214             return buildecom_response_error('buildecom_auth_bad_config', 'Buildecom Auth Secret Key is not configured properly', [], 500);
    215         }
    216 
    217         if (is_email($username)) {
    218             $user_data = get_user_by('email', $username);
    219             if ($user_data) {
    220                 $username = $user_data->user_login;
    221             }
    222         }
    223 
    224         $user = wp_authenticate_username_password(null, $username, $password);;
    225 
    226         if (is_wp_error($user)) {
    227             $error_code = $user->get_error_code();
    228             return buildecom_response_error($error_code, wp_strip_all_tags($user->get_error_message($error_code)), [], 401);
    229         }
    230 
    231         $data = $this->generate_token($user, false);
    232 
    233         $file_upload_nonce   = wp_create_nonce('file_upload_nonce');
    234         $profile_nonce       = wp_create_nonce('update_user_profile_nonce');
    235         $paginate_nonce      = wp_create_nonce('paginate_nonce_action');
    236         $custom_nonce_action = wp_create_nonce('custom_nonce_action');
    237 
    238         $response = array(
    239             'status'  => 'success',
    240             'remark'  => 'login_success',
    241             'message' => ['success' => 'Login successful.'],
    242             'data'    => $data,
    243             'nonces' => [
    244                 'profile_nonce'       => $profile_nonce,
    245                 'file_upload_nonce'   => $file_upload_nonce,
    246                 'custom_nonce_action' => $custom_nonce_action,
    247                 'pageinat_nonce'      => $paginate_nonce
    248             ]
    249         );
    250 
    251         return $response;
    252     }
     206    public function get_token( WP_REST_Request $request ) {
     207        $secret_key = defined( 'BUILDECOM_SECRET_KEY' ) ? BUILDECOM_SECRET_KEY : false;
     208
     209        $body_params = $request->get_body_params();
     210        $username    = isset( $body_params['username'] ) ? $body_params['username'] : '';
     211        $password    = isset( $body_params['password'] ) ? $body_params['password'] : '';
     212
     213        if ( ! $secret_key ) {
     214            return new WP_REST_Response(
     215                array(
     216                    'status'  => 'error',
     217                    'remark'  => 'woocolab_auth_bad_config',
     218                    'message' => ['error' => 'Woocolab Auth Secret Key is not configured properly.'],
     219                ),
     220                500
     221            );
     222        }
     223
     224        if (is_email($username)) {
     225            $user_data = get_user_by('email', $username);
     226            if ($user_data) {
     227                $username = $user_data->user_login;
     228            }
     229        }
     230
     231        $user = wp_authenticate_username_password(null, $username, $password );;
     232       
     233        if ( is_wp_error( $user ) ) {
     234            $error_code = $user->get_error_code();
     235           
     236            return new WP_REST_Response(
     237                array(
     238                    'status'  => 'error',
     239                    'remark'  => $error_code,
     240                    'message' => ['error' => wp_strip_all_tags( $user->get_error_message( $error_code ) )],
     241                ),
     242                401
     243            );
     244        }
     245
     246        $data = $this->generate_token( $user, false );
     247
     248        $response = array(
     249            'status'  => 'success',
     250            'remark'  => 'login_success',
     251            'message' => ['success' => 'Login successful.'],
     252            'data'    => $data,
     253        );
     254
     255        return $response;
     256    }
    253257
    254258    public function generate_token($user, $return_raw = true)
Note: See TracChangeset for help on using the changeset viewer.