Trabalhar nas extensões do Phabricator me levou de volta ao mundo do PHP, uma linguagem que eu só tinha tocado por meio de plug-ins do WordPress e temas de blog nos últimos anos. Apesar de estar longe da linguagem, consegui voltar rapidamente e senti um pequeno conforto de “estar de volta em casa”… até perceber que o Phabricator não era muito documentado e que eu precisaria mergulhar fundo no código-fonte para descobrir como fazer quase todas as tarefas.
Um erro que me deixou perplexo por um tempo foi o seguinte:
O senhor está tentando salvar alguns dados no Phabricator, mas a solicitação feita pelo seu navegador incluiu um token incorreto. Recarregue a página e tente novamente. Talvez o senhor precise limpar seus cookies.
Eu estava tentando criar e salvar um PhabricatorAuthTemporaryToken
para permitir o login por meio de um serviço de terceiros, e a solicitação desse serviço para o Phabricator foi feita em segundo plano, portanto, não havia PHCID porque não havia sessão, portanto, o token CSRF era inválido. Essencialmente, eu precisava de uma maneira de escrever no Phabricator sem uma etapa de validação CSRF (via PHCID). A solução era simples:
// Turn off CSRF check $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); // Save token id(new PhabricatorAuthTemporaryToken()) ->setTokenResource($transaction_code) // ... ->save(); // Turn CSRF check back on unset($unguarded);
AphrontWriteGuard::beginScopedUnguardedWrites()
me permitiu desativar a verificação de CSRF, salvar o token e, em seguida, ativar novamente a verificação de CSRF via unset
. Pouco código, mas demorou muito tempo para ser encontrado!
Adoro o fato de bibliotecas avançadas como o Phabricator insistirem nessas verificações de segurança sem que os desenvolvedores tenham que fazer isso explicitamente; também adoro o fato de que é fácil desativar essa verificação momentaneamente. Compartilharei mais dicas sobre PHP/Fabricator à medida que tiver problemas!
9 demonstrações de telas incríveis
O
<canvas>
tem sido uma revelação para os especialistas em visual entre nós. O Canvas fornece os meios para animações incríveis e eficientes com o bônus adicional de não usar Flash; em vez disso, esses desenvolvedores podem exibir suas incríveis habilidades em JavaScript. Aqui estão nove demonstrações inacreditáveis de canvas que…buscar API
Um dos segredos mais mal guardados sobre AJAX na Web é que a API subjacente a ele,
XMLHttpRequest
, não foi realmente criada para o uso que estamos fazendo dela. Fizemos bem em criar APIs elegantes em torno do XHR, mas sabemos que podemos fazer melhor. Nosso esforço para…
Perguntas frequentes em Flash usando controles deslizantes do MooTools
Costumo qualificar um site excelente como aquele que presta atenção aos detalhes e faz com que todas as “pequenas coisas” pareçam ter sido feitas com muito tempo. Sejamos realistas: as perguntas frequentes são as mais chatas possíveis. Isto é, até o senhor…