public function forgetUserSession() { $auth = AuthRagnarok::user(); if (AuthRagnarok::check()) { if ($auth->environment == 1 || !$this->checkConnection() && $auth->environment == 2) { $session = SecUserSessions::find($auth->userSessionId); if ($session) { $session->update(['status' => 0, 'datetimeUpd' => date('Y-m-d H:m:s')]); } } } }
/** * @param $data * @return \Alfredoem\Ragnarok\Soul\RagnarokResponse */ public function login($data) { if (!key_exists('remember', $data)) { $data['remember'] = false; } // login attempt if (Auth::once(['email' => $data['email'], 'password' => $data['password']], $data['remember'])) { $auth = Auth::user(); // Store session user $session = SecUserSessions::create(['userId' => $auth->userId, 'sessionCode' => Make::uniqueString(), 'ipAddress' => $data['ipAddress'], 'status' => 1, 'dateIns' => date('Y-m-d'), 'datetimeIns' => date('Y-m-d H:m:s')]); $auth->ipAddress = $data['ipAddress']; $auth->sessionCode = $session->sessionCode; $auth->userSessionId = $session->userSessionId; $auth->environment = Session::get('environment'); // Make ragnarok user $this->userRagnarok->make($auth); $this->success = true; } return $this->responseRagnarok->make($this->success, $this->userRagnarok); }
/** * Check if the user have a active session * @param Request $request * @param $userId * @param $sessionCode * @return string */ public function getValidUserSession(Request $request, $userId, $sessionCode) { $session = SecUserSessions::whereuserid($userId)->wheresessioncode($sessionCode)->wheredateins(date('Y-m-d'))->wherestatus(1)->first(); $ipAddress = $request->ip(); if ($session) { if ($session->datetimeUpd < date('Y-m-d H:m:s')) { $session->update(['ipAddress' => $ipAddress, 'datetimeUpd' => date('Y-m-d H:m:s')]); } if ($session->datetimeUpd < date('Y-m-d H:m:s') || $session->ipAddress == $ipAddress) { $data = $session->user; $data->ipAddress = $ipAddress; $data->sessionCode = $session->sessionCode; $data->userSessionId = $session->userSessionId; $data->environment = $this->environment; $data->remember_token = $session->user->remember_token; $this->responseData = $data; $this->responseSuccess = true; } } return EncryptAes::encrypt(json_encode($this->responseRagnarok->make($this->responseSuccess, $this->responseData))); }