sistemas:suap:programacao:webservices

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
sistemas:suap:programacao:webservices [2021/04/07 20:30]
Edwilson de Sousa Carvalho Criação deste novo documento.
sistemas:suap:programacao:webservices [2022/03/19 10:19] (atual)
Edwilson de Sousa Carvalho
Linha 1: Linha 1:
 +FIXME Esta documentação está incompleta.
 +
 ====== Solicitação de aplicação (usuário) ====== ====== Solicitação de aplicação (usuário) ======
  
 Usuário deverá acessar o menu Tecnologia da Informação :: API (OAuth2) :: Minhas Solicitações de Aplicação e preencher os dados da aplicação para solicitar acesso. Usuário deverá acessar o menu Tecnologia da Informação :: API (OAuth2) :: Minhas Solicitações de Aplicação e preencher os dados da aplicação para solicitar acesso.
  
-Após o deferimento do acesso o usuário verá sua(s) aplicação(ões) em Tecnologia da Informação :: API (OAuth2) :: Minhas Aplicações, onde poderá verificar o token de acesso.+Após o deferimento do acesso o usuário verá sua aplicação em Tecnologia da Informação :: API (OAuth2) :: Minhas Aplicações, onde poderá verificar o token de acesso.
  
-{{ :sistemas:suap:programacao:suap_api_detalhes_aplicacao.jpg?nolink&400 |}}+{{ :sistemas:suap:programacao:suap_api_detalhes_aplicacao.jpg?nolink&600 |}}
  
 ====== Liberação de acesso (DGTI) ====== ====== Liberação de acesso (DGTI) ======
Linha 17: Linha 19:
 ===== Fluxo ===== ===== Fluxo =====
  
 +  - Logar com SUAP via OAuth2 
 +  - Consumir API (via OAuth2) obtendo recursos em nome do usuário
  
 ===== Exemplo genérico ===== ===== Exemplo genérico =====
  
-===== Exemplo em Java =====+<code> 
 +curl  
 +</code> 
 + 
 +===== Exemplo em Python/Django ===== 
 + 
 +<code> 
 +class SuapOAuth2(BaseOAuth2): 
 +    name = 'suap' 
 +    AUTHORIZATION_URL = 'https://suap.ifce.edu.br/o/authorize/' 
 +    ACCESS_TOKEN_METHOD = 'POST' 
 +    ACCESS_TOKEN_URL = 'https://suap.ifce.edu.br/o/token/' 
 +    ID_KEY = 'identificacao' 
 +    RESPONSE_TYPE = 'code' 
 +    REDIRECT_STATE = True 
 +    STATE_PARAMETER = True 
 +    USER_DATA_URL = 'https://suap.ifce.edu.br/api/eu/' 
 +     
 + 
 +    def user_data(self, access_token, *args, **kwargs): 
 +        return self.request( 
 +            url=self.USER_DATA_URL, 
 +            data={'scope': kwargs['response']['scope']}, 
 +            method='GET', 
 +            headers={'Authorization': 'Bearer {0}'.format(access_token)} 
 +        ).json() 
 + 
 +    def get_user_details(self, response): 
 +        """ 
 +        Retorna um dicionário mapeando os fields do settings.AUTH_USER_MODEL. 
 +        você pode fazer aqui outras coisas, como salvar os dados do usuário 
 +        (`response`) em algum outro model. 
 +        """ 
 +        splitted_name = response['nome'].split() 
 +        first_name, last_name = splitted_name[0], '' 
 +        if len(splitted_name) > 1: 
 +            last_name = splitted_name[-1] 
 +        return { 
 +            'username': response[self.ID_KEY], 
 +            'first_name': first_name.strip(), 
 +            'last_name': last_name.strip(), 
 +            'email': response['email'], 
 +        } 
 +</code> 
 + 
 +===== Exemplo em JS ===== 
 + 
 +<code> 
 +var CLIENT_ID = ''; 
 +var REDIRECT_URI = 'http://localhost:8888/'; 
 +var SUAP_URL = 'https://suap.ifce.edu.br'; 
 + 
  
 +</code>
  • sistemas/suap/programacao/webservices.1617838250.txt.gz
  • Última modificação: 2021/08/25 10:33
  • (edição externa)