"; print_r($data);exit; return view('Admin.two_steps',$data); } // public function sendOtp(Request $request) // { // try { // $msg_data = array(); // $validationErrors = $this->validateLogin($request); // if (count($validationErrors)) { // \Log::error("Auth Exception: " . implode(", ", $validationErrors->all())); // $msg_data['data'] = array("success" => '0', "message" => implode("\n", $validationErrors->all())); // return response()->json($msg_data); // } // $email = trim(strtolower($request->email)); // //check admin exist with this email or not // $admin_exits = AdminMaster::where('email_id', $email)->get(); // // echo "
";
// // print_r($admin_exits[0]->password);
// // die;
// if (empty($admin_exits)) {
// $msg_data['data'] = array(
// "success" => '0',
// "message" => "Admin does not exist");
// return response()->json($msg_data);
// }
// //verifying password from table
// $password = md5($request->password);
//
// // print_r($admin_exit."
");
// if ($password == $admin_exits[0]->password)
// {
// $admin_data = AdminMaster::where('email_id', $email)->where('pin', $request->digit_pin)->first();
// if (empty($admin_data))
// {
// \Log::error("Admin not found with this email id and pin is incorrect.");
// $msg_data['data'] = array("success" => '0', "message" => "Please enter correct pin!");
// return response()->json($msg_data);
// }
//
// if ($admin_data->is_active == 1) {
// // print_r($admin_data->is_active);
// // die;
// // \Log::info("Login Successful!");
// $enc_data = Crypt::encrypt($email);
// // print_r($enc_data);
// // die;
// //update otp to table
// $otp_data = array();
// $otp_data['otp'] = $otp = generateRandomOTP();
// $checkOtp = AdminMaster::where('email_id', $email)->first();
// $update_otp = AdminMaster::find($checkOtp->id); //->update($otp_data);
// $update_otp->otp = $otp;
// $update_otp->save();
// // print_r($update_otp);
// // die;
//
// //send email otp section start
// // $body = "Login Verification, please use the verification code to sign in Code " . $otp;
// // Mail::send("Admin.auth.send_otp", ['body'=> $body], function ($message) use ($email) {
// // $message->from('pradyumn@wdimails.com', 'WOKA');
// // $message->to($email, 'WOKA')->subject('Woka Sign in OTP');
// // });
//
// $msg_data['data'] = array("success" => '1', "message" => "OTP has been sent to your mails. " . $otp, "redirect" => "two_step", "email" => $enc_data);
// return response()->json($msg_data);
// } else {
// \Log::error("Account Suspended.");
// $msg_data['data'] = array("success" => '0', "message" => 'Account is suspended.');
// return response()->json($msg_data);
// }
// return response()->json($msg_data);
// } else
// {
// $msg_data['data'] = array("success" => '0', "message" => 'Incorrect Password.');
// return response()->json($msg_data);
// }
// return response()->json($msg_data);
// } catch (\Exception $e) {
// \Log::error("Login failed: " . $e->getMessage());
// return response()->json(array("success" => '0', "message" => 'Something Went Wrong.'));
// }
// }
public function sendOtp(Request $request)
{
try {
$msg_data = array();
$validationErrors = $this->validateLogin($request);
// print_r($validationErrors); exit;
if (count($validationErrors)) {
\Log::error("Auth Exception: " . implode(", ", $validationErrors->all()));
$msg_data['data'] = array("success" => '0', "message" => implode("\n", $validationErrors->all()));
return response()->json($msg_data);
}
$email = trim(strtolower($request->email));
//check admin exist with this email or not
$admin_exits = AdminMaster::where('email_id', $email)->first();
// print_r($admin_exits); exit;
if (empty($admin_exits)){
$msg_data['data'] = array(
"success" => '0',
"message" => "Admin does not exist!");
return response()->json($msg_data);
}
//verifying password from table
// print_r($admin_exits->password);exit;
//dd( (Hash::check(trim($request->password), $admin_exits->password) )
// ,$request->password,$admin_exits->password);
$verify_pass = Hash::check($request->password,$admin_exits->password);
// print_r($verify_pass); exit;
if ($verify_pass){
$admin_data = AdminMaster::where([['email_id', $email], ['pin', $request->digit_pin]])->first();
if (empty($admin_data)) {
\Log::error("Admin not found with this email id and pin is incorrect.");
$msg_data['data'] = array("success" => '0', "message" => "Please enter correct pin!");
return response()->json($msg_data);
}
if ($admin_data->is_active == 1) {
// \Log::info("Login Successful!");
$enc_data = Crypt::encrypt($email);
//update otp to table
$now = Carbon::now('Asia/Kolkata')->format('Y-m-d H:i:s');
$otp_data = array();
// generateRandomOTP();
$otp_data['otp'] = $otp = 1234;
$checkOtp = AdminMaster::where('email_id', $email)->first();
$update_otp = AdminMaster::find($checkOtp->id);//->update($otp_data);
$update_otp->otp = $otp;
$update_otp->updated_at = $now;
$update_otp->save();
//send email otp section start
$body = $otp;
$mail = Mail::send("Admin.Templates.sign_in_otp", ['body'=> $body], function ($message) use ($email) {
$message->from('getsetfit@gmail.com', 'GSF');
$message->to($email, 'GSF')->subject('Gsf Sign in OTP');
});
if ($mail){
$msg_data['data'] = array("success" => '1', "message" => "OTP has been sent to your mail.", "redirect" => "two_step", "email_id" => $enc_data);
return response()->json($msg_data);
}else{
$msg_data['data'] = array("success" => '0', "message" => "Failed to send OTP. Please try again later.");
return response()->json($msg_data);
}
}
else {
\Log::error("Account Suspended.");
$msg_data['data'] = array("success" => '0', "message" => 'Account is suspended.');
return response()->json($msg_data);
}
return response()->json($msg_data);
}
$msg_data['data'] = array("success" => '0', "message" => 'Incorrect Password!');
return response()->json($msg_data);
} catch (\Exception $e) {
\Log::error("Login failed: " . $e->getMessage());
$msg_data['data'] = array("success" => '0', "message" => 'Something Went Wrong!');
return response()->json($msg_data);
}
}
// * Uses : Validates input login request
public function validateLogin(Request $request)
{
return \Validator::make($request->all(),
[
'email' => 'required|email|string',
'password' => 'required|string',
'digit_pin' => 'required|digits:4'
],
[
'email.required' => 'Please enter your email.',
'password.required' => 'Please enter your password.',
'pin.required' => 'Please enter your pin.',
'digit_pin.digits' => 'Pin must be 4 digit only.'
])->errors();
}
public function verifyLogin(Request $request)
{
// print_r($request->all);exit;
try{
$msg_data = array();
$validationErrors = $this->validateVerifyLoginRequest($request);
if (count($validationErrors)) {
\Log::error("Auth Exception: " . implode(", ", $validationErrors->all()));
$msg_data['data'] = array("success" => '0', "message" => implode("\n", $validationErrors->all()));
return response()->json($msg_data);
}
$email = trim(strtolower(decrypt($request->d)));
// print_r($request->otp);
// die;
// $email = decrypt($request->email);
$admin_data = AdminMaster::where([['email_id', $email],['otp', $request->otp]])->first();
if(empty($admin_data)){
$msg_data['data'] = array("success" => '0', "message" => 'Invalid OTPd.');
return response()->json($msg_data);
}
// convert UTc time zone to local
$datetime = new DateTime($admin_data->updated_at);
$timezone = new DateTimeZone('Asia/Kolkata'); // or whatever zone you're after
$datetime->setTimezone($timezone);
$update_datetime = $datetime->format('Y-m-d H:i:s');
//add 5 minut to updated at
$minutes_to_add = 5;
$time = new DateTime($update_datetime);
$time->add(new DateInterval('PT' . $minutes_to_add . 'M'));
$timestamp = $time->format('Y-m-d H:i:s');
//current time
$now = Carbon::now('Asia/Kolkata')->format('Y-m-d H:i:s');
if($admin_data){
if($now > $timestamp){
$msg_data = array("success" => '0', "message" => 'OTP has been expired.');
return response()->json($msg_data);
}
else{
// if(!empty($admin_data)){
//creating session if otp is verified
$data = array(
"id"=>$admin_data->id,
"email_id"=>$email,
);
// print_r($data);
// die;
// session_start();
// $request->session()->put('data',$data);
// $sessionDetails = Session::put('data', $data);
Session::put('data', $data);
$request->session()->put('data',$data);
// $sessionDetails= session(['data' => $data]);
// dd($data,$sessionDetails);
// \Session::save();
// print_r(session('data'));exit;
// die;
$msg_data['data'] = array("success" => '1', "message" => 'Sign In Successfully.', "redirect" => "dashboard");
return response()->json($msg_data);
}
}else{
$msg_data = array("success" => '0', "message" => 'Invalid OTP.');
return response()->json($msg_data);
}
}catch (\Exception $e) {
\Log::error("Login failed: " . $e->getMessage());
return response()->json(array("success" => '0', "message" => 'Something Went Wrong.'));
}
}
public function validateVerifyLoginRequest(Request $request)
{
return \Validator::make($request->all(),
[
'otp' => 'required|digits:4',
],
[
'otp.required' => 'Please enter 4 digit OTP.',
'otp.digits' => 'OTP must be 4 digit.'
])->errors();
}
public function adminPostLogin(Request $request)
{
// print_r($request->all());
// exit;
$request->validate([
'email' => 'required',
'password' => 'required',
]);
$credentials = $request->only('email', 'password');
$admins = AdminMaster::where('email_id', $request->email)->first();
// dd($admins);
// $loginInfo = AdminMaster::where('email_id',$request->email)->first();
// dd($credentials,Auth::attempt($credentials));
// dd(Auth::login($admins));
// Auth::attempt(['email_id' => $request->email,'password' => $request->password]);
// dd(Auth::attempt(['email_id' => $request->email,'password'=> $request->password]));
if ($admins && Auth::guard('admin')->attempt(['email_id' => $request->email,'password'=> $request->password])) {
// dd(Auth::guard('admin')->attempt(['email_id' => $request->email,'password'=> $request->password]));
$user = Auth::guard('admin')->user();
// dd($user);
// $token = JWTAuth::fromUser($user); // Generate JWT token for the admin
// Store the token in the session
// Session::put('admin_token', $token);
return response(['success'=>true, 'message'=>"You Have Logged in Successfully"]);
// ->withHeaders(['X-admin-token' => $token]);
// return redirect()->intended('dashboard')->withSuccess('You have Successfully logged in');
}else{
return response(['success'=>false, 'message'=>"Invalid! Email or Password "]);
}
// return redirect()->route('login')->with('error', 'ddddInvalid email or password.');
// return redirect("login");
}
}