add authenticate for user; add unit test for authenticate; generate controller for user