Multi-provider authentication framework for PHP