Este repositório contém código para desenvolvedores que precisam iniciar uma aplicação utilizando os conceitos RESTFul com Slim Framework, porém, não querem passar pela fase de estruturação e configuração de ferramentas como Eloquent ORM, OAuth e Slim-Monolog. Slim-OAuth2-Eloquent já contém todas estas ferramentas configuradas e prontas para uso.
PHP >= 5.4.0
- Download
composer.phar
$ curl -sS https://getcomposer.org/installer | php
- Instalar dependências
$ composer install
- Criar banco de testes SQLite
$ php share/init/init.php
O banco de dados que foi criando, dentro do subdiretório share/init, contém um usuário de teste. Este será usando para ilustrar o uso da API.
username: usertest
password: test
Obs.: O banco de dados possui o nome de oauth2.sqlite3. Este por sua vez, está sem permissão de escrita/leitura e com isso será gerado uma exceção. Para tornar o banco utilizável é preciso executar o comando:
$ chmod 777 oauth2.sqlite3
A pasta public
é onde deve estar todo o fluxo do projeto. Neste local ficarão os códigos que não devem ser atualizados por novas versões do projeto Slim-OAuth2-Eloquent
.
Para não haver problemas é muito importante que o desenvolvedor inclua este diretório no .gitignore
de seu projeto.
Para obter um token de acesso ou atualizar o existente, a solicitação deve ser feita utilizando o método POST
e Content-Type: application/x-www-form-urlencoded
. Os dados necessários são:
grant_type: password
client_id: testclient
client_secret: secret
username: usertest
password: test
$ curl -i POST -H "Content-Type: application/x-www-form-urlencoded" -d 'grant_type=password&client_id=testclient&client_secret=secret&username=usertest&password=test' http://localhost/Slim-OAuth2-Eloquent/public/oauth/token
grant_type: refresh_token
client_id: testclient
client_secret: secret
refresh_token: refresh_token=código retornado no parametro refresh_token
$ curl -i POST -H "Content-Type: application/x-www-form-urlencoded" -d 'grant_type=refresh_token&client_id=testclient&client_secret=secret&refresh_token=refresh_token=código retornado no parametro refresh_token' http://localhost/Slim-OAuth2-Eloquent/public/oauth/token
O acesso aos dados da API acontece dentro dos padrões RESTful (GET
, POST
, PUT
, DELETE
). Ao utilizar qualquer um destes métodos é obrigatório o envio do 'token' obtido na solicitação. O mesmo precisa ser enviado no 'header' da requisição 'http' através do parametro 'Authorization' e este deve ser da seguinte foma:
Authorization: Bearer d7TSwi1dXK3F1sN78tTEPDGOmD9c2oWmRFu6hrj6
$ curl -i GET http://localhost/Slim-OAuth2-Eloquent/public/api/v1/users
OBS.: O hash utilizado como token é meramente ilustrativo, devendo ser substituído pelo obtido na solicitação/atualização de token
Bugs, features, sugestões ou dúvidas utilizar GitHub
Este projeto é licenciado sob os termos da licença MIT. Veja o arquivo de LICENSE.
Leonir Alves - https://twitter.com/leonir_ad