generalized auth controller & serviced