Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Captive portal manual logout page address

    Scheduled Pinned Locked Moved Captive Portal
    105 Posts 15 Posters 57.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      brinch
      last edited by

      This post is deleted!
      1 Reply Last reply Reply Quote 0
      • GertjanG
        Gertjan
        last edited by Gertjan

        This worked for me :

        <?php
        
        require_once("captiveportal.inc");
        require_once("auth.inc");
        require_once("functions.inc");
        
        global $g, $config, $cpzone, $cpzoneid;
        
        /* Are there any portals  ? */
        if (is_array($config['captiveportal'])) {
        	/* For every portal (cpzone), do */
        	foreach ($config['captiveportal'] as $cpkey => $cp)
        		/* Sanity check */
        		if (is_array($config['captiveportal'][$cpkey])) 
        			/* Is zone enabled ? */
        			if (array_key_exists('enable', $config['captiveportal'][$cpkey])) {
        				$cpzone = $cpkey;
        				$cpzoneid = $cp['zoneid'];
        				$client_ip = $_SERVER['REMOTE_ADDR'];
        				$cpentry = array();
        				$cpentry = captiveportal_isip_logged($client_ip);
        				if ( array_key_exists(5, $cpentry) ) {
        				captiveportal_disconnect_client($cpentry[5], 1, "USER LOGOUT");
        				}
        			}
        	}
        ?>
        

        Note : the $cpzone should be set to the actual captive portal zone instance name !
        ( I'll update this post later on so the code will scan over all active captive portal zone instances )

        When I visited this /logout.php page, I was logged out.

        edit : code updated.

        No "help me" PM's please. Use the forum, the community will thank you.
        Edit : and where are the logs ??

        B G 2 Replies Last reply Reply Quote 1
        • B
          brinch @Gertjan
          last edited by

          @Gertjan

          Thank you very much, it does the trick.

          Have a good day

          1 Reply Last reply Reply Quote 0
          • GertjanG
            Gertjan
            last edited by

            I just updated the code ^^

            No "help me" PM's please. Use the forum, the community will thank you.
            Edit : and where are the logs ??

            1 Reply Last reply Reply Quote 0
            • N
              netx34
              last edited by

              any tutorial process to input this code? or edit and add
              thanks in advance ive got this issue with my client users for how many months.

              GertjanG 1 Reply Last reply Reply Quote 0
              • GertjanG
                Gertjan @netx34
                last edited by

                @netx34 said in Captive portal manual logout page address:

                any tutorial process to input this code? or edit and add

                Yep.

                Place (create) it here : /usr/local/captiveportal
                Call the file "logout.php".

                Note : this is NOT a file you can upload into the pfSense Captive Pprtal's file manager !!

                Now you can use
                http://portal.mypfsense.tld:8004/logout.php
                or
                http://192.168.2.1:8004/logout.php

                ( if 192.168.2.1 is the IP address of the captive portal's interface - or your set "portal.mypfsense.tld" as the FQDN to this IP using the Resolver.
                "8004" is just an example, your port number might be different. )

                No "help me" PM's please. Use the forum, the community will thank you.
                Edit : and where are the logs ??

                N 1 Reply Last reply Reply Quote 0
                • N
                  netx34 @Gertjan
                  last edited by

                  @Gertjan thank you,
                  im now test it before i deploy it to my exact pf serve,
                  great work and update.

                  update later after work.

                  1 Reply Last reply Reply Quote 0
                  • N
                    netx34
                    last edited by

                    btw only the logout.php can apply FQDN for the domain name

                    GertjanG 1 Reply Last reply Reply Quote 0
                    • GertjanG
                      Gertjan @netx34
                      last edited by

                      @netx34 said in Captive portal manual logout page address:

                      btw only the logout.php can apply FQDN for the domain name

                      What do you mean ?

                      No "help me" PM's please. Use the forum, the community will thank you.
                      Edit : and where are the logs ??

                      1 Reply Last reply Reply Quote 0
                      • G
                        guntery @Gertjan
                        last edited by guntery

                        When I visited this /logout.php page, I was logged out.

                        So this code works great, thanks. I'm adding in a redirect at the end of the file - it works - but it takes around 20 seconds too load the login page - or any page

                        Any ideas on a workaround? - I assume the portal is interfering somehow.

                        <script>window.location.replace("http://example.com");</script>
                        
                        

                        edit: weird, it a happened a few times, restored a backup and it now works fine..

                        GertjanG 1 Reply Last reply Reply Quote 0
                        • GertjanG
                          Gertjan @guntery
                          last edited by

                          @guntery said in Captive portal manual logout page address:

                          I'm adding in a redirect at the end of the file

                          What are you talking about ?
                          What file ? The script from above ? That a massive "log everybody out" script file.

                          After throwing everybody out, why would you redirect yourself to http://example.com ? Why not the pfSense GUI ?

                          No "help me" PM's please. Use the forum, the community will thank you.
                          Edit : and where are the logs ??

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            guntery @Gertjan
                            last edited by

                            Huh? It logs out the user who goes to that page not all users.

                            the redirect goes to the splash page either way though right (it's an example), in this case I have 2 captive portals with differing IP's and 1 logout script so it was easier to use the domain redirect not the CP IP

                            GertjanG 1 Reply Last reply Reply Quote 0
                            • GertjanG
                              Gertjan @guntery
                              last edited by

                              @guntery said in Captive portal manual logout page address:

                              uh? It logs out the user who goes to that page not all users.

                              I stand corrected.
                              Had to review the script and true, the caller gets logged out.
                              Sorry for the noise ^^

                              No "help me" PM's please. Use the forum, the community will thank you.
                              Edit : and where are the logs ??

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post
                              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.