Implement basic user authentication. Closes #8.