Código fonte de um microserviço que busca informações do Facebook de um usuário logado.
O código teve como base os seguintes tutoriais:
- Acesso o Django Admin: http://localhost:8000/admin
- Crie uma nova applicação (add a New Application)
- client_id e client_secret não deve ser modificado
- redirect_uris deve ficar em branco
- client_type setado como To confidential
- authorization_grant_type setado como 'Resource owner password-based'
- O campo name pode ser qualquer um que desejar.
Não é adequado que o usuário envie o token do facebook sempre que quiser acessar um recurso. Para isso, o serviço armazena o token do facebook e envia um token próprio da aplicação para acessar recursos da microserviço
A converção do token do facebook para o token da aplicação é feita da seguinte forma:
curl -X POST -d "grant_type=convert_token&client_id=<CLIENT_ID_DJANGO>client_secret=<CLIENT_SECRET_DJANGO>&backend=facebook&token=<TOKEN_USER_FACEBOOK>" http://localhost:8000/auth/convert-token
O retorno dessa requisição é dessa forma:
{"refresh_token":"<REFRESH_TOKEN>","expires_in":36000,"token_type":"Bearer","scope":"read write","access_token":"<ACCESS_TOKEN>"}
Esse novo ACCESS_TOKEN é utilizado para acessar os recursos do serviço. Veja um exemplo de acesso:
curl -H "Authorization: Bearer <ACCESS_TOKEN>" -X GET http://localhost:8000/facebook/me/
Dessa forma, o usuário pode obter dados do facebook.