Does the connection token get generated from the app or should that be handled client side using the relays set in Amber?
you can do both, there's a nostrconnect uri that a client can generate and there's a bunker uri that the signer generate. In amber to generate the bunker string you go to permissions, press the plus button and then press the new app button
You can also use some library that does all the work for you like https://github.com/fiatjaf/window.nostr.js and https://github.com/nostrband/nostr-login
Awesome, thank you!