fix typo
move auth.authenticate to User Model
add some middleware
rewrite Model
fix bugs in user/signup