Changeset 3319801
- Timestamp:
- 06/30/2025 09:03:46 AM (9 months ago)
- File:
-
- 1 edited
-
buildecom/trunk/inc/api/class-api-auth.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
buildecom/trunk/inc/api/class-api-auth.php
r3316130 r3319801 66 66 $lastName = isset($params['lastname']) ? sanitize_text_field($params['lastname']) : ''; 67 67 68 $errors = array();69 70 68 if (empty($username)) { 71 $errors['error.username'] = 'Username is required.'; 72 } 69 $errors[] = 'Error: The username field is empty.'; 70 } 71 73 72 if (empty($password)) { 74 $errors['error.password'] = 'Password is required.'; 75 } 73 $errors[] = 'Error: The password field is empty.'; 74 } 75 76 76 if (empty($email)) { 77 $errors['error.email'] = 'Email is required.'; 78 } 77 $errors[] = 'Error: The email field is empty.'; 78 } 79 79 80 if (empty($firstName)) { 80 $errors['error.firstname'] = 'First name is required.'; 81 } 81 $errors[] = 'Error: The first name field is empty.'; 82 } 83 82 84 if (empty($lastName)) { 83 $errors[ 'error.lastname'] = 'Last name is required.';85 $errors[] = 'Error: The last name field is empty.'; 84 86 } 85 87 86 88 if (!empty($errors)) { 87 return buildecom_response_error('missing_fields', $errors, [], 400);89 return buildecom_response_error('missing_fields', [ $errors], [], 400); 88 90 } 89 91 … … 202 204 } 203 205 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 } 253 257 254 258 public function generate_token($user, $return_raw = true)
Note: See TracChangeset
for help on using the changeset viewer.