1

Starbucks started this new thing where if you use their Wi-Fi you have to each time approve or deny if advertisers can track you.

But they have a shady UX where it is nested and each time when "signing in" the button to approve advertiser tracking is easily auto-accepted. And each time I go through the extra steps to deny tracking.

Well, I've attempted to reject advertiser tracking today but couldn't. The captive portal came up, but the advertiser consent form froze and connected me to the Internet regardless. Which shouldn't have happened.

And I cannot get the captive portal to come back up. So now I want to see how I can get Starbucks to forget my device.

Note: the Starbucks Wi-Fi auto-saves "something" in their system so that for X period of time it recognizes your hardware device and only prompts the captive portal and not a new registration.

Here's the problem I don't know what is being saved so I can reset my registration.

Again, Starbucks does three things in order for you to use their WiFi:

  1. Device registration - a form appears on X cadence, for example, every 30 days you have to complete a form before getting access to WiFI. The form asks for the following: name, email address, and ZIP code

  2. It asks you to consent to their terms - This screen happens for every new session. Not every X days like above.

  3. A new thing in the above consent form, nested is to approve or deny advertiser tracking. Where approve advertiser tracking is auto-clicked.

Problem: The second item above is broken. A new session happens and I am not asked to consent to the terms; it just connects me to the Internet.

I tried this: Go to https://captive.apple.com/hotspot-detect.html and it renders "success" which is expected behavior.

So then I have tried the following five things:

  1. Deleted Starbucks from my Preferred Networks
  2. Flush DNS
    sudo dscacheutil -flushcache
    sudo killall -HUP mDNSResponder
  3. Turn Wi-Fi on and off
  4. Restart the computer
  5. Change the MAC address; however, after the fact I discovered it is not permanent

And nothing is working. Rather than wait 30 days or however many days, how do I force Starbucks to forget my device?

Does anyone know what device information Starbucks is saving to recognize my computer?

I use VPN every time on their network. Which may reduce the effectiveness of advertiser tracking. But I want to understand what they are doing technology-wise.

5
  • Did you try deleting your browser cache? I don’t know if a plugin exists for Safari, but for Firefox and Edge (Chrome) there are user agent string modifiers that change what is being reported (and tracked) about your browser/computer. Give that a shot
    – Allan
    Commented Mar 26, 2023 at 18:48
  • @Allan Captive portal doesn't show in the browser
    – Ezekiel
    Commented Mar 26, 2023 at 20:29
  • A captive portal is displayed through the default browser @Ezekiel.
    – Allan
    Commented Mar 26, 2023 at 21:14
  • 1
    MacOS also uses Captive Network Assistant which is a limited browser just for accepting captive portals. It is supposed to be completely separate from Safari and to not store any cookies. However if they didn't get the popup from Captive Network Assistant, and it was instead in their browser, it could be cookies tracking them.
    – thewade
    Commented Mar 26, 2023 at 21:40
  • @Allan While it's possible to view a captive portal in the default browser, the system uses an isolated web-view when you join a browser that triggers the captive portal (as thewade explained as well)
    – Ezekiel
    Commented Mar 27, 2023 at 2:48

1 Answer 1

3

They are probably using your device's MAC address. You can temporarily change this using the answer given here: https://apple.stackexchange.com/a/183370/261584

You can also try:

brew install spoof-mac
sudo spoof-mac randomize en0

This should force the captive portal prompt once again.

If you don't want to install any Homebrew formulae, you can try these sequence of commands to do it using only built-in utilities.

Ensure your Wi-Fi is on, then in Terminal.app:

$ # Copy the output of below: e.g. 2b:62:1f:fe:8e:1f
$ openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
$ # Disassociate from the current Wi-Fi network
$ sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
$ # Set the MAC address of the Wi-Fi interface (quickly, before re-association)
$ sudo ifconfig en0 ether 2b:62:1f:fe:8e:1f

If it fails with an error like fconfig: ioctl (SIOCAIFADDR): Can't assign requested address, try again with a new random address. Note you might have to be quick, to run the ifconfig command before the Wi-Fi re-associates (airportd -z).

2
  • 1
    It worked! Thank you. I only tried the brew option. Also important to note it forced the registration screen. Where I registered the device - name, email, and zip code. And then received a second screen to accept T&C and approve or deny advertiser tracking. Commented Mar 29, 2023 at 15:43
  • 1
    FWIW the separate commands are effectively what the reference Brew package does for you, at time of writing
    – deed02392
    Commented Apr 4, 2023 at 17:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .