Jul 25, 2024
0
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.
Please or to participate in this conversation.