Back-End

18 ago, 2014

Acesso automático a repositórios privados usando o Composer

Publicidade

O Composer foi melhorado só para adicionar suporte integrado para se fazer login automaticamente a repositórios privados ou públicos que exigem uma senha para serem acessados.

Leia este artigo para aprender como ele funciona e como você pode usá-lo para automatizar a instalação de pacotes de Classes PHP e outros repositórios Composer que podem exigir a autenticação baseada em senha.

Acesso a repositórios Composer baseado em senha

Existem vários repositórios de pacotes públicos rodando Composer, como Packagist, PHP Classes ou mesmo JS Classes, mas alguns projetos precisam baixar pacotes de repositórios privados com código que não pode ser disponibilizado ao público porque contém informações comerciais delicadas.

Repositórios privados são muitas vezes protegidos com senhas, para que somente os usuários autorizados possam acessá-los.
No PHP Classes e no JS Classes, parte dos pacotes também exige que o usuário seja autenticado com uma senha, para que o site possa tomar nota de qual  usuário está baixando cada pacote. Essa é uma opção que cada autor que contribui para o PHP Classes ou para o JS Classes  pode manter ou remover.

Muitos autores preferem mantê-lo para que o site possa fazer uma contagem exata de usuários distintos que baixam de cada pacote. Isso também possibilita que o site avise os usuários por e-mail quando os pacotes são atualizados.

Automatizando o acesso a repositórios protegidos por senha

O Composer pode acessar repositórios protegidos com senhas. No entanto, até pouco tempo, toda vez que o usuário precisava instalar ou atualizar os pacotes dos repositórios protegidos, ele tinha que digitar a senha manualmente novamente, tornando a experiência entediante e frustrante.

No início deste ano, eu desenvolvi um pacote PHP que funciona como um plugin do Composer para instalar arquivos ativos fora do diretório vendor, como JavaScript, CSS e imagens.

Além disso, esse plugin é capaz de automatizar o login em repositórios Composer, lendo senhas a partir de um arquivo de configuração. Esse foi um passo à frente para resolver o problema da automatização da autenticação do Composer, mas não foi uma solução ideal para todos os desenvolvedores, porque iria obrigá-los a instalar esse plugin primeiro.

Finalmente, Jordi Boggiano, autor do Compositor, aceitou uma contribuição enviada por Stephan Hochdorfer do bitExpert para adicionar suporte integrado para automatizar o acesso autenticado a repositórios Compositor que exigem senha, além de outras melhorias legais.

Essas melhorias podem fazer com que o Compositor leia os usuários e as senhas de um arquivo chamado auth.json localizado no diretório “home” do Compositor ou no diretório do arquivo composer.json do seu projeto.

Você não precisa criar o arquivo auth.json manualmente. Para simplificar a sua vida, o Composer pode solicitar que o usuário digite o nome de usuário e a senha e, em seguida, perguntar se você quer salvar essas credenciais no arquivo auth.json.

Composer-Password-Based-Install

Você também pode configurar as credenciais de autenticação usando este comando do Composer:

composer config www.phpclasses.org username password

Se você estiver preocupado com as questões de segurança e não quiser que as senhas sejam armazenadas em arquivos, é possível configurar o Composer para nunca salvar senhas para o arquivo auth.json usando este comando:

composer config -g store-auths false

Senhas do Composer versus senhas de usuários

Por razões de segurança, é mais seguro não utilizar as mesmas senhas para o Composer que as usadas em sites. Portanto, os repositórios de Composer dos sites PHP Classes e JS Classes exigem que cada usuário insira as senhas que não são iguais àquelas que eles utilizam para entrar no site.

Essas senhas são geradas pelo site de forma aleatória. Você pode instalar qualquer pacote com a mesma senha. Cada um dos sites tem a sua própria senha Composer para cada usuário, mesmo para os usuários que usam o PHP e o JS Classes com o mesmo usuário.

Para saber qual é a sua senha no Composer, vá para a página do pacote que deseja instalar e clique no link que diz Instalar em Composer. Essa página mostra o seu nome de usuário e senha no Composer.

Recentemente, as páginas de pacotes dos sites PHP Classes e JS Classes foram melhoradas significativamente. Agora você deve ir à aba Download e clicar no link que diz Install with Composer.

***

Artigo traduzido pela Redação iMasters, com autorização do autor. Publicado originalmente em http://www.phpclasses.org/blog/post/236-PHP-Composer-Private-Repository-Automatic-Access.html