/Slim-OAuth2-Eloquent

API base em PHP para desenvolvedores que precisam iniciar uma aplicação utilizando os conceitos RESTFul

Primary LanguagePHPMIT LicenseMIT

Slim-OAuth2-Eloquent

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.

Requerimentos

PHP >= 5.4.0

Instalação

$ curl -sS https://getcomposer.org/installer | php
  • Instalar dependências
$ composer install
  • Criar banco de testes SQLite
$ php share/init/init.php

Usar

Banco de dados

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

Pasta public

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.

Solicitar um token para acesso e atualizar token (Refresh token)

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:

Solicitaçã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
Atualização
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

Acessar dados com token de acesso obtido na solicitação (Access 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

Links

Referências utilizadas

Suporte

Bugs, features, sugestões ou dúvidas utilizar GitHub

Licença

Este projeto é licenciado sob os termos da licença MIT. Veja o arquivo de LICENSE.

Autor

Leonir Alves - https://twitter.com/leonir_ad