Authentication functions should be separate from ControllerBase as trait?