AnonSec Team
Server IP : 72.167.149.90  /  Your IP : 216.73.216.228
Web Server : Apache
System : Linux server.zoomride.app 4.18.0-553.158.1.el8_10.x86_64 #1 SMP Wed Aug 26 03:18:33 EDT 2026 x86_64
User : zoomride2022 ( 1001)
PHP Version : 8.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0700) :  /home/zoomride2022/.trash/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/zoomride2022/.trash/wpjobster-google-login-backup.php
<?php
/**
 * Plugin Name: WPJobster Google Login (Mobile)
 * Description: Google login endpoint for Capacitor mobile app
 * Version: 1.0
 */

if (!defined('ABSPATH')) exit;

add_action('rest_api_init', function () {
    register_rest_route('wpjobster/v1', '/google-login', [
        'methods'  => 'POST',
        'callback' => 'wpjobster_google_login',
        'permission_callback' => '__return_true',
    ]);
});

function wpjobster_google_login(WP_REST_Request $request) {
    $id_token = $request->get_param('token');

    if (!$id_token) {
        return new WP_Error('no_token', 'Missing Google ID token', ['status' => 400]);
    }

    //  MUST be your WEB CLIENT ID
    $google_client_id = '902331388638-5pcgkgv9cobhtha31h18h4l4attoolv6.apps.googleusercontent.com';

    $response = wp_remote_get(
        'https://oauth2.googleapis.com/tokeninfo?id_token=' . $id_token
    );

    if (is_wp_error($response)) {
        return new WP_Error('google_error', 'Google verification failed', ['status' => 401]);
    }

    $data = json_decode(wp_remote_retrieve_body($response), true);

    if (
        empty($data['email']) ||
        $data['aud'] !== $google_client_id ||
        empty($data['email_verified'])
    ) {
        return new WP_Error('invalid_token', 'Invalid Google token', ['status' => 401]);
    }

    $email = sanitize_email($data['email']);
    $name  = sanitize_text_field($data['name'] ?? '');
    $user  = get_user_by('email', $email);

    if (!$user) {
        $username = sanitize_user(strtolower(str_replace(' ', '', $name)));

        if (username_exists($username)) {
            $username .= rand(1000, 9999);
        }

        $user_id = wp_create_user(
            $username,
            wp_generate_password(32),
            $email
        );

        if (is_wp_error($user_id)) {
            return new WP_Error('user_create_failed', 'Could not create user', ['status' => 500]);
        }

        wp_update_user([
            'ID' => $user_id,
            'display_name' => $name,
        ]);

        $user = get_user_by('id', $user_id);
    }

    // Generate JWT using Simple JWT Authentication
    $jwt = apply_filters('jwt_auth_token_before_dispatch', [
        'token' => jwt_auth_generate_token($user),
    ], $user);

    return [
        'token' => $jwt['token'],
        'user'  => [
            'id'    => $user->ID,
            'email' => $user->user_email,
            'name'  => $user->display_name,
        ],
    ];
}

AnonSec - 2021