code: public UserAccessToken authenticate(String email, String pwd, String device) {
  		Criteria criteria = this.dao.newCriteria(User.class)
  				.add(Restrictions.eq("deleted", false))
  				.add(Restrictions.or(
  					Restrictions.eq("email", email),
  					Restrictions.eq("username", email)
  				))
  				.add(Restrictions.eq("password", CryptManager.passwordHash(pwd)));
  		User user = (User) criteria.uniqueResult();
  		if (user != null) {
  			UserAccessToken token = this.generateAccessToken(user, device);
  			this.session.login(token);
  			return token;
  		}
  		return null;
  	}
docs: Autenticar o usuário que está efetuando login e salva na sessão de usuário.
  
  @param email E-mail do usuário.
  @param pwd Passoword do usuário.
  @param device ID do dispositivo de onde a autenticação veio.
  @return UserAccessToken Usuário existe e tem acesso ao sistema.