Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Solaiman Hossain's avatar

How to make Laravel login api default session

Actually, I have made login and registration API, now I want to make the Laravel login session live. But I am unable to manage the Laravel login API default session. How can I solve this problem?

0 likes
2 replies
bugsysha's avatar

Why don't you use tokens with API? What are you trying to achieve?

Solaiman Hossain's avatar

I am trying to achieve login with session and logout session if the session expires then in the project after any action project will display a logout page.

Here is my login and registration function:

public function login(Request $request) { $validator = Validator::make($request->all(),[ 'user_id' => ['required'], 'user_token' => ['required'], 'project_token' => ['required'], ]);

    if ($validator->fails()){
        return response()->json([
            'success' => false,
            'errors' => $validator->errors()->toArray()
        ]);
    }

    $project_user_token = DB::table('users')
            ->where('user_id', $request->user_id)
            ->where('user_token',$request->user_token)
            ->where('project_token',$request->project_token)
            ->get()
            ->toArray();

    if($project_user_token){
        return response()->json([
            'success' => 'true',
        ]);
    }else{
        return response()->json([
            'success' => 'false',
            'reason' => 'Your user id, user token or project token invalid!',
        ], 401);
    }

}


public function register(Request $request)
{
    
        $validator = Validator::make($request->all(),[
            'name' => ['required','string','max:255'],
            'email' => ['required','string', 'email', 'max:255', 'unique:users'],
            'user_id' => ['required','integer','unique:users'],
            'bussiness_url' => ['required'],
            'listing_limit' => ['required'],
            'start_date' => ['required'],
            'expire_date' => ['required'],
            'user_token' => ['required','string','unique:users'],
        ]);


        if ($validator->fails()){
            return response()->json([
                'success' => false,
                'errors' => $validator->errors()->toArray()
            ]);
        }


     try{

        $data = array();
        $data['user_id'] = $request->user_id;
        $data['name'] = $request->name;
        $data['email'] = $request->email;
        $data['bussiness_name'] = $request->bussiness_name;
        $data['bussiness_url'] = $request->bussiness_url;
        $data['listing_limit'] = $request->listing_limit;
        $data['start_date'] = date("Y-m-d H:i:s", strtotime($request->start_date)) ?? null;
        $data['expire_date'] = date("Y-m-d H:i:s", strtotime($request->expire_date)) ?? null;
        $data['user_token'] = $request->user_token;
        $token = Str::random(60);
        $data['project_token'] = hash('sha256', $token);
        DB::table('users')->Insert($data);
        $user = DB::table('users')->where('email',$data['email'])->first();
            
        
        return response()->json([
            'success' => 'true',
            'project_token' => $user->project_token,
            'login_url' => 'https://woowms.com/dev-master-wms',
            
        ]);
        
    }catch(Exception $e){
        return response()->json([
            'success' => 'false',
            'errors' => $e->getMessage(),
       ]);
    }
    
    
    
}

Please or to participate in this conversation.