Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

binung's avatar
Level 1

Session issue in reCAPTCHA implementation.

I am trying to implement reCAPTCHA during user register. The code I wrote is as follows: class RegisterController extends Controller { use RegistersUsers;

protected $redirectTo = RouteServiceProvider::HOME;

public function __construct()
{
    $this->middleware('guest');
}

protected function validator(array $data)
{
    return Validator::make($data, [
        'first_name' => ['required', 'string', 'max:255'],
        'last_name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8'],
    ]);
}

public function register(Request $request)
{
    $validate = $this->validator($request->all());

    if ($validate->fails()) {
        return response()->json([
            'status' => false,
            'message' => view('Frontend::components.alert', ['type' => 'danger', 'message' => $validate->errors()->first()])->render()
        ]);
    }

    $agree = $request->post('agree_field', '');

    if (empty($agree)) {
        return response()->json([
            'status' => false,
            'message' => view('Frontend::components.alert', ['type' => 'danger', 'message' => __('Please agree with our terms and conditions')])->render()
        ]);
    }

    session(['register_data' => $request->all()]);
    Log::info(Session::get('register_data'));
    return response()->json([
        'status' => true,
    ]);
}

public function verifyRecaptcha(Request $request)
{
    dd(session('register_data', []));
    $validate = $request->validate([
        'g-recaptcha-response' => ['required', new Recaptcha],
    ]);

    // if ($request->session->exists('register_data'))
    $data = session('register_data');

    if (!$data) {
        return response()->json([
            'status' => false,
            'message' => 'Session data not found. Please try again.',
        ]);
    }

    event(new Registered($user = $this->create($data)));

    $this->guard()->login($user);

    // $request->session()->forget('register_data');

    return response()->json([
        'status' => true,
        'message' => view('Frontend::components.alert', ['type' => 'success', 'message' => __('Register successfully')])->render(),
        'redirect' => url('/')
    ]);
}

protected function create(array $data)
{
    return User::create([
        'first_name' => $data['first_name'],
        'last_name' => $data['last_name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

}

// Controller class RegisterController extends Controller { use RegistersUsers;

protected $redirectTo = RouteServiceProvider::HOME;

public function __construct()
{
    $this->middleware('guest');
}

protected function validator(array $data)
{
    return Validator::make($data, [
        'first_name' => ['required', 'string', 'max:255'],
        'last_name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8'],
    ]);
}

public function register(Request $request)
{
    $validate = $this->validator($request->all());

    if ($validate->fails()) {
        return response()->json([
            'status' => false,
            'message' => view('Frontend::components.alert', ['type' => 'danger', 'message' => $validate->errors()->first()])->render()
        ]);
    }

    $agree = $request->post('agree_field', '');

    if (empty($agree)) {
        return response()->json([
            'status' => false,
            'message' => view('Frontend::components.alert', ['type' => 'danger', 'message' => __('Please agree with our terms and conditions')])->render()
        ]);
    }

    session(['register_data' => $request->all()]);
    Log::info(Session::get('register_data'));
    return response()->json([
        'status' => true,
    ]);
}

public function verifyRecaptcha(Request $request)
{
    dd(session('register_data', []));
    $validate = $request->validate([
        'g-recaptcha-response' => ['required', new Recaptcha],
    ]);

    // if ($request->session->exists('register_data'))
    $data = session('register_data');

    if (!$data) {
        return response()->json([
            'status' => false,
            'message' => 'Session data not found. Please try again.',
        ]);
    }

    event(new Registered($user = $this->create($data)));

    $this->guard()->login($user);

    // $request->session()->forget('register_data');

    return response()->json([
        'status' => true,
        'message' => view('Frontend::components.alert', ['type' => 'success', 'message' => __('Register successfully')])->render(),
        'redirect' => url('/')
    ]);
}

protected function create(array $data)
{
    return User::create([
        'first_name' => $data['first_name'],
        'last_name' => $data['last_name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

}class RegisterController extends Controller { use RegistersUsers;

protected $redirectTo = RouteServiceProvider::HOME;

public function __construct()
{
    $this->middleware('guest');
}

protected function validator(array $data)
{
    return Validator::make($data, [
        'first_name' => ['required', 'string', 'max:255'],
        'last_name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8'],
    ]);
}

public function register(Request $request)
{
    $validate = $this->validator($request->all());

    if ($validate->fails()) {
        return response()->json([
            'status' => false,
            'message' => view('Frontend::components.alert', ['type' => 'danger', 'message' => $validate->errors()->first()])->render()
        ]);
    }

    $agree = $request->post('agree_field', '');

    if (empty($agree)) {
        return response()->json([
            'status' => false,
            'message' => view('Frontend::components.alert', ['type' => 'danger', 'message' => __('Please agree with our terms and conditions')])->render()
        ]);
    }

    session(['register_data' => $request->all()]);
    Log::info(Session::get('register_data'));
    return response()->json([
        'status' => true,
    ]);
}

public function verifyRecaptcha(Request $request)
{
    dd(session('register_data', []));
    $validate = $request->validate([
        'g-recaptcha-response' => ['required', new Recaptcha],
    ]);

    // if ($request->session->exists('register_data'))
    $data = session('register_data');

    if (!$data) {
        return response()->json([
            'status' => false,
            'message' => 'Session data not found. Please try again.',
        ]);
    }

    event(new Registered($user = $this->create($data)));

    $this->guard()->login($user);

    // $request->session()->forget('register_data');

    return response()->json([
        'status' => true,
        'message' => view('Frontend::components.alert', ['type' => 'success', 'message' => __('Register successfully')])->render(),
        'redirect' => url('/')
    ]);
}

protected function create(array $data)
{
    return User::create([
        'first_name' => $data['first_name'],
        'last_name' => $data['last_name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

}

Issue: session('register_data', []) value is obtained as null.

0 likes
0 replies

Please or to participate in this conversation.