Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
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) | + | Após o deferimento do acesso o usuário verá sua aplicação em Tecnologia da Informação :: API (OAuth2) :: Minhas Aplicações, |
- | {{ : | + | {{ : |
====== 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 ===== | + | < |
+ | curl | ||
+ | </ | ||
+ | |||
+ | ===== Exemplo em Python/ | ||
+ | |||
+ | < | ||
+ | class SuapOAuth2(BaseOAuth2): | ||
+ | name = ' | ||
+ | AUTHORIZATION_URL = ' | ||
+ | ACCESS_TOKEN_METHOD = ' | ||
+ | ACCESS_TOKEN_URL = ' | ||
+ | ID_KEY = ' | ||
+ | RESPONSE_TYPE = ' | ||
+ | REDIRECT_STATE = True | ||
+ | STATE_PARAMETER = True | ||
+ | USER_DATA_URL = ' | ||
+ | |||
+ | |||
+ | def user_data(self, | ||
+ | return self.request( | ||
+ | url=self.USER_DATA_URL, | ||
+ | data={' | ||
+ | method=' | ||
+ | headers={' | ||
+ | ).json() | ||
+ | |||
+ | def get_user_details(self, | ||
+ | """ | ||
+ | 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[' | ||
+ | first_name, last_name = splitted_name[0], | ||
+ | if len(splitted_name) > 1: | ||
+ | last_name = splitted_name[-1] | ||
+ | return { | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Exemplo em JS ===== | ||
+ | |||
+ | < | ||
+ | var CLIENT_ID = ''; | ||
+ | var REDIRECT_URI = ' | ||
+ | var SUAP_URL = ' | ||
+ | |||
+ | </ |