Skip to content

Exemplo de aplicação de API REST com integração com Google oAuth2 usando Flask

License

Notifications You must be signed in to change notification settings

ropinho/flask-api-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Super OrgContact

Basicamente o sistema permite o usuário logar com uma conta do Google e então lista e agrupa os contatos do usuário por domínio. Por exemplo:

Flask REST API

Foi usado Python com o framework Flask para implementação de uma API REST que se comunica com o os serviços de autenticação OAuth2 e People API do Google para fazer o login do usuário no app usando a conta do Google e então fornecer as informações básicas do usuário e informações de contatos desse usuário.

As informações incluem principalmente nome e endereços de email e são fornecidas em formato JSON. A API é composta de 4 endpoints:

  • GET /connections

    Retorna as informações básicas do perfil do usuário logado junto com as informações de conexões/contatos do atual usuário logado com a conta do Google, as infomações incluem os nomes, endereços de email e seus respectivos domínios. Aceita "all" como um parâmetro de Url com um valor booleano que define se serão retornados todos os contatos ou somente aqueles que possuem um endereço de e-mail, o valor padrão é "false". Caso não seja detectado um login é retornada somente a mensagem padrão de aviso.

  • GET /login

    Aqui, o sistema faz a requisição que inicia o fluxo de autenticação com uma conta do Google. O usuário é requisitado a logar com uma conta Google ou escolher uma conta já logada no navegador. Depois de o usuário consentir o login é redirecionado para /login/callback para tratar a resposta da API OAuth2 do Google.

  • GET /login/callback

    Trata as respostas do servidor de OAuth2 do Google com as credenciais de autenticação que são armazenadas em uma sessão de usuário no app Flask. Depois que as credenciais/tokens são validadas e armazenadas na sessão, o app retorna um JSON com a resposta sobre o sucesso do login.

  • GET /logout

    Limpa a sessão de usuário (com as credenciais) se for detectado que há um login no app. Retorna um JSON com uma mensagem sobre o processo de logout.


O deploy da API foi feito usando o Heroku.

Teste acessando https://superorgcontact.herokuapp.com/login .

About

Exemplo de aplicação de API REST com integração com Google oAuth2 usando Flask

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages