diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index f297e75..5ab48e9 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -450,6 +450,34 @@ class AuthController extends Controller } } + public function enteredEmailOTP(Request $request) + { + // dd((int)$request->otp, Session::get('user-registration')['otp']); + $validator = Validator::make($request->post(), [ + 'otp' => 'required|min:4|max:4', + // 'contact_number' => 'required|exists:users,contact_number|min:10|max:10' + ], [ + 'required' => 'The :attribute field is required', + // 'exists' => 'Contact Number has not been registered.', + 'min' => 'The :attribute field must be 4 digits', + 'max' => 'The :attribute field must be 4 digits', + ]); + $validationMessage = $this->validationError($validator); + if ($validationMessage) { + return response()->json(['status' => 400, 'message' => $validationMessage], 400); + } + + $otp = (int)$request->otp; + if (Session::has('user-registration')) { + // $user = Session::get('user-registration'); + if (Session::get('user-registration')['otp'] == $otp) { + return response()->json(['status' => 200, 'message' => 'OTP verified']); + } + return response()->json(['status' => 401, 'message' => 'Invalid OTP!']); + } + return response()->json(['status' => 401, 'message' => 'OTP Expired!']); + } + public function signUp(Request $request) { $validator = Validator::make($request->all(), [ @@ -505,14 +533,15 @@ class AuthController extends Controller ]); if (!$userCreated) { return response()->json(['status' => 400, 'message' => 'Error creating user!'])->setStatusCode(400); - }else{ - $user = User::where('email',$request->email)->first(); + } else { + $user = User::where('email', $request->email)->first(); $userToken = $user->createToken('apiToken')->plainTextToken; - return response()->json(['status' => 200, 'message' => 'User Created','token' => $userToken,'data' => $user]); + return response()->json(['status' => 200, 'message' => 'User Created', 'token' => $userToken, 'data' => $user]); } } else { Session::forget('user-registration'); $otp = $this->otpGenerate($request->email); + $mobile_otp = $this->otpGenerate($request->contact_number); $userRegistration = [ 'name' => $request->name, 'user_type' => 'Investor', @@ -520,7 +549,8 @@ class AuthController extends Controller 'email' => $request->email, 'password' => bcrypt($request->password), 'contact_number' => $request->contact_number, - 'otp' => $otp + 'otp' => $otp, + 'mobile_otp' => $mobile_otp, ]; $userCreated = Session::put('user-registration', $userRegistration); $mailData = [ @@ -528,6 +558,7 @@ class AuthController extends Controller 'body' => 'This is for testing email using smtp.' ]; Mail::to($request->email)->send(new OtpMail($mailData, $otp)); + $this->thirdPartyOTP($request->contact_number,$mobile_otp); } // $name = $request->name; // $email = $request->email; @@ -561,14 +592,15 @@ class AuthController extends Controller ]); if (!$userCreated) { return response()->json(['status' => 400, 'message' => 'Error creating user!'])->setStatusCode(400); - }else{ - $user = User::where('email',$request->email2)->first(); + } else { + $user = User::where('email', $request->email2)->first(); $userToken = $user->createToken('apiToken')->plainTextToken; - return response()->json(['status' => 200, 'message' => 'User Created','token' => $userToken,'data' => $user]); + return response()->json(['status' => 200, 'message' => 'User Created', 'token' => $userToken, 'data' => $user]); } } else { Session::forget('user-registration'); $otp = $this->otpGenerate($request->email); + $mobile_otp = $this->otpGenerate($validated['contact_number2']); $userRegistration = [ 'name' => $validated['name2'], 'user_type' => 'Asset Manager', @@ -576,7 +608,8 @@ class AuthController extends Controller 'email' => $validated['email2'], 'contact_number' => $validated['contact_number2'], 'password' => bcrypt($validated['password2']), - 'otp' => $otp + 'otp' => $otp, + 'mobile_otp' => $mobile_otp, ]; $userCreated = Session::put('user-registration', $userRegistration); $mailData = [ @@ -584,6 +617,7 @@ class AuthController extends Controller 'body' => 'This is for testing email using smtp.' ]; Mail::to($validated['email2'])->send(new OtpMail($mailData, $otp)); + $this->thirdPartyOTP($validated['contact_number2'],$mobile_otp); // Mail::to('yadavritikesh29@gmail.com')->send(new OtpMail($mailData, $otp)); } // $name = $request->name; @@ -601,7 +635,8 @@ class AuthController extends Controller // return response()->json(['status' => 400, 'message' => 'Error creating user!'], 400); // } // $token = $userCreated->createToken('apiToken')->plainTextToken; - return response()->json(['status' => 200, 'message' => 'User Created']); + // return response()->json(['status' => 200, 'message' => 'User Created']); + return response()->json(['status' => 200, 'message' => 'OTP has been sent to your email']); } public function getUser(Request $request) @@ -716,7 +751,7 @@ class AuthController extends Controller $otp = (int)$request->otp; if (Session::has('user-registration')) { $userDetails = Session::get('user-registration'); - if ($userDetails['otp'] !== $otp) { + if ($userDetails['mobile_otp'] !== $otp) { return response()->json(['status' => 400, 'message' => 'OTP Did Not Matched!']); } $userCreated = User::create([ @@ -739,8 +774,9 @@ class AuthController extends Controller $data->notify(new UserAdmin($notify, $type)); } - Auth::guard('users')->login($userCreated); + // Auth::guard('users')->login($userCreated); return response()->json(['status' => 200, 'message' => 'OTP has been matched and User has been created!'], 200); + // return response()->json(['status' => 200, 'message' => 'OTP has been matched'], 200); } $checkOTP = User::where(['contact_number' => $request->contact_number, 'otp' => $request->otp])->first(); @@ -860,7 +896,7 @@ class AuthController extends Controller ]); if ($insertOtp) { - return response()->json(['message' => 'OTP Sent Succesfully', 'otp' => $otp,'status' => 200]); + return response()->json(['message' => 'OTP Sent Succesfully', 'otp' => $otp, 'status' => 200]); } return response()->json(['message' => 'Error Sending OTP', 'status' => 400]); } @@ -887,7 +923,7 @@ class AuthController extends Controller } return response()->json(['status' => 200, 'message' => 'OTP has been matched!'], 200); } - return response()->json(['message' => 'OTP Not Matched', 'status' => 400],400); + return response()->json(['message' => 'OTP Not Matched', 'status' => 400], 400); } public function forgotPasswordStepThree(Request $request) @@ -910,11 +946,11 @@ class AuthController extends Controller if ($validationMessage) { return response()->json(['status' => 400, 'message' => $validationMessage], 400); } - + $user = User::where(['contact_number' => $request->contact_number])->first(); - if (Hash::check($request->password, $user->password)){ - return response()->json(['message' => 'New Password Cannot be Same as Old Password!', 'status' => 400],400); + if (Hash::check($request->password, $user->password)) { + return response()->json(['message' => 'New Password Cannot be Same as Old Password!', 'status' => 400], 400); } $changePassword = User::where(['contact_number' => $request->contact_number])->update([ diff --git a/app/Http/Controllers/Frontend/LoginController.php b/app/Http/Controllers/Frontend/LoginController.php index 16201c8..68ac48c 100644 --- a/app/Http/Controllers/Frontend/LoginController.php +++ b/app/Http/Controllers/Frontend/LoginController.php @@ -47,6 +47,11 @@ class LoginController extends Controller return view('Frontend.Pages.register_otp'); } + public function registerMobileOtp() + { + return view('Frontend.Pages.register_mobile_otp'); + } + public function forgetPassword(){ return view('Frontend.Pages.forget_password_request'); } diff --git a/app/Http/Controllers/Frontend/ProfileController.php b/app/Http/Controllers/Frontend/ProfileController.php index 5e5fd57..beffff3 100644 --- a/app/Http/Controllers/Frontend/ProfileController.php +++ b/app/Http/Controllers/Frontend/ProfileController.php @@ -180,7 +180,7 @@ class ProfileController extends Controller Mail::to($request->newEmail)->send(new OtpMail($mailData, $otp)); return response()->json([ 'status' => 200, - 'message' => 'OTP sended on enter email', + 'message' => 'OTP has been sent to your email', ]); } @@ -193,7 +193,7 @@ class ProfileController extends Controller 'email' => Session::get('newEmail'), ]); Session::forget(['newEmail', 'otp']); - return response()->json(['status' => 200, 'message' => 'Email update successfully']); + return response()->json(['status' => 200, 'message' => 'Your email updated successfully']); } return response()->json(['status' => 201, 'message' => 'OTP invalid !']); } @@ -212,13 +212,47 @@ class ProfileController extends Controller $otp = rand(1000, 9999); Session::put('contact_number', $request->newcontact_number); Session::put('mobile_otp', $otp); - $sendOTPMessage = (new sendOTP)->thirdPartyOTP($request->contact_number, $otp); + $this->thirdPartyOTP($request->contact_number, $otp); return response()->json([ 'status' => 200, - 'message' => 'OTP sended to contact number', + 'message' => 'OTP has been sent to your contact number', ]); } + public function thirdPartyOTP($number, $otp) + { + $curl = curl_init(); + + curl_setopt_array($curl, array( + CURLOPT_URL => 'https://restapi.smscountry.com/v0.1/Accounts/4F7T5SbGyV7HBrEHxmX4/SMSes/', + CURLOPT_RETURNTRANSFER => true, + CURLOPT_ENCODING => '', + CURLOPT_MAXREDIRS => 10, + CURLOPT_TIMEOUT => 0, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => '{ + "Text": "Dear Investor, Your login OTP is ' . $otp . '. - Blue Feather Ventures Pvt Ltd.", + "Number": "91' . $number . '", + "SenderId": "BLUFVL", + "DRNotifyUrl": "https://www.domainname.com/notifyurl", + "DRNotifyHttpMethod": "POST", + "Tool": "API" + }', + CURLOPT_HTTPHEADER => array( + 'Content-Type: application/json', + 'Authorization: Basic NEY3VDVTYkd5VjdIQnJFSHhtWDQ6emFXdFEyTlV3ZlZROHB6dGRvVlRZUFdibG01Y1AxRldsbWl2WlVrbg==' + ), + )); + + $response = curl_exec($curl); + + curl_close($curl); + return $response; + // return true; + } + public function updateContactNumber(Request $request) { // dd(Session::get('mobile_otp'), Session::get('contact_number'), $request->mobile_otp); @@ -228,7 +262,7 @@ class ProfileController extends Controller 'contact_number' => Session::get('contact_number'), ]); Session::forget(['contact_number', 'mobile_otp']); - return response()->json(['status' => 200, 'message' => 'Contact number update successfully']); + return response()->json(['status' => 200, 'message' => 'Contact number updated successfully']); } return response()->json(['status' => 201, 'message' => 'OTP invalid !']); } diff --git a/public/assets/js/FrontendJs/register/registered.js b/public/assets/js/FrontendJs/register/registered.js index 604439f..ac70e5b 100644 --- a/public/assets/js/FrontendJs/register/registered.js +++ b/public/assets/js/FrontendJs/register/registered.js @@ -106,19 +106,23 @@ $(document).ready(function () { success: function (data) { if (data.status == 200) { // window.location.href = 'register_otp?user_id=' + data.user_id; - Swal.fire({ - text: data.message, - icon: "success", - buttonsStyling: !1, - confirmButtonText: "Proceed", - customClass: { confirmButton: "btn yellow-btn popup-button" }, - }).then(function (t) { - if (t.isConfirmed) { - let url = "register_otp"; + let url = "register_otp"; - window.location.replace(url); - } - }); + window.location.replace(url); + // Swal.fire({ + // text: data.message, + // icon: "success", + // buttonsStyling: !1, + // confirmButtonText: "Proceed", + // customClass: { confirmButton: "btn yellow-btn popup-button" }, + // }).then(function (t) { + // if (t.isConfirmed) { + // // let url = "{{route('register_otp')}}"; + // let url = "register_otp"; + + // window.location.replace(url); + // } + // }); } else if (data.error.email) { $("#error").remove(); @@ -247,19 +251,19 @@ $(document).ready(function () { success: function (data) { if (data.status == 200) { // window.location.href = 'register_otp?user_id=' + data.user_id; - Swal.fire({ - text: data.message, - icon: "success", - buttonsStyling: !1, - confirmButtonText: "Proceed", - customClass: { confirmButton: "btn yellow-btn popup-button" }, - }).then(function (t) { - if (t.isConfirmed) { - let url = "register_otp"; + // Swal.fire({ + // text: data.message, + // icon: "success", + // buttonsStyling: !1, + // confirmButtonText: "Proceed", + // customClass: { confirmButton: "btn yellow-btn popup-button" }, + // }).then(function (t) { + // if (t.isConfirmed) { + // let url = "register_otp"; - window.location.replace(url); - } - }); + // window.location.replace(url); + // } + // }); } else if (data.error.email) { $("#error").remove(); diff --git a/public/assets/js/FrontendJs/register/verify_otp.js b/public/assets/js/FrontendJs/register/verify_otp.js index 0d2af6a..35e5f03 100644 --- a/public/assets/js/FrontendJs/register/verify_otp.js +++ b/public/assets/js/FrontendJs/register/verify_otp.js @@ -47,7 +47,7 @@ $(document).ready(function () { submitHandler: function (form) { // var formData = new FormData(form); - // var user_id = $("#user_id").val(); + // var user_id = $("#user_id").val(); var otp = $("#input_1").val().toString() + @@ -62,9 +62,91 @@ $(document).ready(function () { }); $.ajax({ - // url: "api/verify/otp", - url: "api/entered-otp", + url: "api/entered-email-otp", + type: "POST", + + data: { + otp: otp, + }, + + // dataType: 'json', + + success: function (response) { + if (response.status != 200) { + // Swal.fire({ + // text: response.message, + + // icon: "error", + + // buttonsStyling: !1, + + // confirmButtonText: "Ok, got it!", + + // customClass: { confirmButton: "btn btn-primary popup-button" }, + // }).then(function (t) { + // if (t.isConfirmed) { + // $(".otp").val(""); + // } + // }); + toastr.warning(response.message); + } else { + toastr.success(response.message); + setTimeout(function () { + url = "register-mobile-otp"; + window.location.replace(url); + }, 3000); + // Swal.fire({ + // text: "OTP Verified Successfully", + // icon: "success", + // buttonsStyling: !1, + // confirmButtonText: "Proceed", + // customClass: { confirmButton: "btn yellow-btn popup-button" }, + // }).then(function (t) { + // if (t.isConfirmed) { + // let url = "/"; + + // window.location.replace(url); + // } + // }); + } + }, + }); + }, + }); + + $("#verify_otp_for_mobile").validate({ + rules: { + user_id: { + required: true, + }, + }, + + messages: { + user_id: { + required: "", + }, + }, + submitHandler: function (form) { + // alert("hello"); + // var formData = new FormData(form); + + // var user_id = $("#user_id").val(); + + var otp = + $("#input_1").val().toString() + + $("#input_2").val().toString() + + $("#input_3").val().toString() + + $("#input_4").val().toString(); + + $.ajaxSetup({ + headers: { + "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), + }, + }); + + $.ajax({ + url: "api/entered-otp", type: "POST", @@ -91,7 +173,9 @@ $(document).ready(function () { $(".otp").val(""); } }); + // toastr.warning(response.message); } else { + // toastr.success(response.message); Swal.fire({ text: "OTP Verified Successfully", icon: "success", diff --git a/resources/views/Frontend/Pages/register_mobile_otp.blade.php b/resources/views/Frontend/Pages/register_mobile_otp.blade.php new file mode 100644 index 0000000..e42d2cc --- /dev/null +++ b/resources/views/Frontend/Pages/register_mobile_otp.blade.php @@ -0,0 +1,57 @@ + +@extends('Frontend.layouts.master') + +@section('content') +
OTP has been sent to your registered email address.
OTP valid for sec
Didn't receive any otp? Resend OTP
+ +