芝麻web文件管理V1.00
编辑当前文件:/home/unicorntechnolog/public_html/mt5-ctrader/app/Http/Controllers/Auth/LoginController.php
middleware('guest')->except('logout'); } public function logout() { User::where("email", Auth::user()->email)->update([ "session_id" => null ]); Auth::logout(); return redirect('/login'); } public function ip_info($ip = NULL, $purpose = "location", $deep_detect = TRUE) { $output = NULL; if (filter_var($ip, FILTER_VALIDATE_IP) === FALSE) { $ip = $_SERVER["REMOTE_ADDR"]; if ($deep_detect) { if (filter_var(@$_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP)) $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; if (filter_var(@$_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP)) $ip = $_SERVER['HTTP_CLIENT_IP']; } } $purpose = str_replace(array("name", "\n", "\t", " ", "-", "_"), NULL, strtolower(trim($purpose))); $support = array("country", "countrycode", "state", "region", "city", "location", "address"); $continents = array( "AF" => "Africa", "AN" => "Antarctica", "AS" => "Asia", "EU" => "Europe", "OC" => "Australia (Oceania)", "NA" => "North America", "SA" => "South America" ); if (filter_var($ip, FILTER_VALIDATE_IP) && in_array($purpose, $support)) { $ipdat = @json_decode(file_get_contents("http://ip-api.com/json/" . $ip)); if (@$ipdat && $ipdat->status == "success") { switch ($purpose) { case "location": $output = array( "city" => @$ipdat->city, "state" => @$ipdat->regionName, "country" => @$ipdat->country, "country_code" => @$ipdat->countryCode, "continent" => @$continents[strtoupper($ipdat->continentCode ?? '')] ?? null, "continent_code" => @$ipdat->continentCode ); break; case "address": $address = array($ipdat->country); if (@strlen($ipdat->regionName) >= 1) $address[] = $ipdat->regionName; if (@strlen($ipdat->city) >= 1) $address[] = $ipdat->city; $output = implode(", ", array_reverse($address)); break; case "city": $output = @$ipdat->city; break; case "state": case "region": $output = @$ipdat->regionName; break; case "country": $output = @$ipdat->country; break; case "countrycode": $output = @$ipdat->countryCode; break; } } } return $output; } public function showLoginForm() { if(Auth::check()){ if(Auth::user()->type == '1'){ return redirect('/client/dashboard'); } elseif(Auth::user()->type == '3'){ return redirect('/mm/dashboard'); } } return view('auth.login'); } public function login(\Illuminate\Http\Request $request) { $this->validateLogin($request); if($this->hasTooManyLoginAttempts($request)) { $this->fireLockoutEvent($request); return $this->sendLockoutResponse($request); } if($this->guard()->validate($this->credentials($request))) { $user = $this->guard()->getLastAttempted(); if($user->status == '1' && $user->type == '1' && $this->attemptLogin($request)) { Auth::login($user, $request->has('remember')); User::where("email", $user->email)->update([ "session_id" => Session::getId() ]); LoginActivity::create([ 'city' => $this->ip_info("Visitor", "city"), 'state' => $this->ip_info("Visitor", "state"), 'country' => $this->ip_info("Visitor", "country"), 'userid' => $user->id, 'user_name' => $user->name, 'user_agent' => \Illuminate\Support\Facades\Request::header('User-Agent'), 'ip_address' => \Illuminate\Support\Facades\Request::ip(), ]); return redirect('/client/dashboard'); } elseif($user->status == '1' && $user->type == '3' && $this->attemptLogin($request)) { Auth::login($user, $request->has('remember')); LoginActivity::create([ 'userid' => $user->id, 'user_name' => $user->name, 'user_agent' => \Illuminate\Support\Facades\Request::header('User-Agent'), 'ip_address' => \Illuminate\Support\Facades\Request::ip(), ]); return redirect('/mm/dashboard'); } elseif($user->status == '2') { Auth::logout(); return redirect('/login')->with('error', 'Your account is block.'); } else { Auth::logout(); return redirect('/login')->with('error', 'Your email is not verified yet.'); } } $this->incrementLoginAttempts($request); return $this->sendFailedLoginResponse($request); } public function postLogin(\Illuminate\Http\Request $request) { $this->validate($request, [ 'email' => 'required|email', 'password' => 'required', ]); if($this->guard()->validate($this->credentials($request))) { $user = Auth::getLastAttempted(); if($user->active) { Auth::login($user, $request->has('remember')); return redirect()->intended($this->redirectPath()); } else { return redirect($this->loginPath()) ->withInput($request->only('email', 'remember')) ->withErrors([ 'error' => 'Your email is not verified yet.' ]); } } return redirect($this->loginPath()) ->withInput($request->only('email', 'remember')) ->withErrors([ 'email' => $this->getFailedLoginMessage(), 'error' => 'Your email is not verified yet.' ]); } protected function credentials($request) { return array_merge($request->only($this->username(), 'password')); } public function emailverification(Request $request, $token1 = null, $token2 = null){ $uid = base64_decode($token1); $email = base64_decode($token2); $userData = User::where('id',$uid)->where('email',$email)->first(); if($userData['status'] == '0'){ $userData->status = '1'; $userData->verified_status = '0'; $userData->save(); try{ Mail::to($userData->email)->send(new Emailverify($userData)); } catch(\Exception $e){ Log::error("Error sending email: " . $e->getMessage()); } } if($userData->type == '1'){ return redirect('/login')->with("status", "Your Email Verified Successfully.Login here"); } } }