user: add functional `.login()`