Implement signin and signout, completing Chapter 8