leoniralves / 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 pala fase de estruturação e configuração de ferramentas como Eloquent ORM, OAuth e Slim-Monolog. Slim-OAuth2-Eloquent já contém todas es
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 25
Watchers: 4
Forks: 10
Open Issues: 2
Type:project
Requires
- php: >=5.4.0
Requires (Dev)
- flynsarmy/slim-monolog: 1.0.0
- illuminate/database: 4.2.16
- league/oauth2-server: >=4.1.1
- monolog/monolog: >=1.6.0
- slim/extras: *
- slim/middleware: *
- slim/slim: 2.*
This package is not auto-updated.
Last update: 2024-11-09 19:41:37 UTC
README
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
- 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
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