fix: refactor auth backends to make it more consistent using the top-level functions instead of custom attributes