FEAT_COOKIE_SAVE_AND_CHECK ADDED

This commit is contained in:
Srinivas-Saravanan 2025-01-08 09:17:03 +05:30
parent 4f5f117aa6
commit 0e0a881375
5 changed files with 48 additions and 16 deletions

View File

@ -19,8 +19,8 @@ class LoginController extends BaseController
// set_session_data($session_data); // set_session_data($session_data);
// $isLoggedIn = check_session(); // $isLoggedIn = check_session();
$isLoggedIn = check_session(); $isLoggedIn = check_session();
$hasCookie = check_cookie();
if ($isLoggedIn) { if ($isLoggedIn || $hasCookie) {
return redirect()->to(base_url('/dashboard/view')); return redirect()->to(base_url('/dashboard/view'));
} }
return view('login'); return view('login');
@ -29,7 +29,6 @@ class LoginController extends BaseController
public function receiveGoogleOAuthResponse() public function receiveGoogleOAuthResponse()
{ {
$UserModel = new UserModel(); $UserModel = new UserModel();
//echo 'DONE';die(); //echo 'DONE';die();
if ($this->request->getGet('code')) { if ($this->request->getGet('code')) {
@ -52,7 +51,10 @@ class LoginController extends BaseController
'userProfile' => $value->picture, 'userProfile' => $value->picture,
'user_team' => $user_team, 'user_team' => $user_team,
]; ];
$path = getenv('cookie.Path');
$domain = getenv('cookie.Domain');
$https = getenv('ccokie.secure');
setcookie('session_data', json_encode($session_data), time() + 12 * 60 * 60, $path, $domain, $https, true);
set_session_data($session_data); set_session_data($session_data);
log_message('error', 'Set The UserId : `'. $user->id .'` in Session'); log_message('error', 'Set The UserId : `'. $user->id .'` in Session');
@ -82,12 +84,14 @@ class LoginController extends BaseController
public function initiateGoogleOAuth() public function initiateGoogleOAuth()
{ {
return googleOAuthLogin(false); return googleOAuthLogin(false);
} }
public function logout() public function logout()
{ {
$path = getenv('cookie.Path');
session()->destroy(); session()->destroy();
setcookie('session_data', '', time() - 3600, $path);
return redirect()->to(base_url('login')); return redirect()->to(base_url('login'));
} }

View File

@ -9,8 +9,7 @@ class AuthMVC implements FilterInterface
{ {
public function before(RequestInterface $request, $arguments = null) public function before(RequestInterface $request, $arguments = null)
{ {
if (!check_session()) { if (!check_session() && !check_cookie()) {
return redirect()->to(base_url('/login')); return redirect()->to(base_url('/login'));
} }

View File

@ -1,6 +1,6 @@
<?php <?php
// File: app/Helpers/oauth_helper.php // File: app/Helpers/oauth_helper.php
// require 'vendor/autoload.php';
use Google\Client as GoogleClient; use Google\Client as GoogleClient;
use Google\Service\Oauth2; use Google\Service\Oauth2;

View File

@ -1,5 +1,40 @@
<?php <?php
use App\Models\UserModel;
if(!function_exists('check_cookie')){
function check_cookie(){
$UserModel = new UserModel();
if(isset($_COOKIE['session_data'])){
$value = (array)json_decode($_COOKIE['session_data']);
$user = $UserModel->getUserByEmail($value['userData']->email);
if($user){
if($user->is_active !== '0'){
$user_team = $UserModel->getUserTeamsByUserID($user->id);
// dd($user_team);
$session_data = [
'isLoggedIn' => True ,
'userid' => $user->id,
'userData' => $user,
'userProfile' => $value['userProfile'],
'user_team' => $user_team,
];
set_session_data($session_data);
// $this->getUserDeviceInfo($user->id, 'NhanceUser');
// return redirect()->to(base_url('/dashboard/view'));
return true;
}
// $session_data = (array)json_decode($_COOKIE['session_data']);
// set_session_data($session_data);
}
}else{
return false;
}
}
}
if (!function_exists('check_session')) { if (!function_exists('check_session')) {
function check_session() function check_session()
@ -148,9 +183,3 @@ if (!function_exists('user_team')) {
return $session->get('user_team'); return $session->get('user_team');
} }
} }

View File

@ -16,7 +16,7 @@
"ext-mbstring": "*", "ext-mbstring": "*",
"dompdf/dompdf": "^2.0", "dompdf/dompdf": "^2.0",
"firebase/php-jwt": "^6.10", "firebase/php-jwt": "^6.10",
"google/apiclient": "^2.15.0", "google/apiclient": "^2.18",
"kreait/firebase-php": "^7.0", "kreait/firebase-php": "^7.0",
"laminas/laminas-escaper": "^2.9", "laminas/laminas-escaper": "^2.9",
"php-amqplib/php-amqplib": "^2.8", "php-amqplib/php-amqplib": "^2.8",