Fix for #14: infinite loop in authenticate

Using `connection.post` avoids an infinite loop where `authenticate` calls `post` for authentication and `post` calls `authenticate` due to missing authentication.