don't pass data to shadowLogin, it has to check itself to avoid invalid use