[feature] add a callback onAuth instead of emitting events from the child VMs
[enhancement] store the user data if they are new