FIXME Esta documentação está incompleta. ====== 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. 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&600 |}} ====== Liberação de acesso (DGTI) ====== Permissão necessária para realizar deferimento: Administrador de API O usuário com perfil faz o deferimento através do menu Tecnologia da Informação :: API (OAuth2) :: Minhas Solicitações de Aplicação. Após realizar o deferimento a aplicação ainda fica com status inativa, sendo necessário editar os dados e marcar a opção ativa. ====== Instruções de uso ====== ===== Fluxo ===== - Logar com SUAP via OAuth2 - Consumir API (via OAuth2) obtendo recursos em nome do usuário ===== Exemplo genérico ===== curl ===== Exemplo em Python/Django ===== 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'], } ===== Exemplo em JS ===== var CLIENT_ID = ''; var REDIRECT_URI = 'http://localhost:8888/'; var SUAP_URL = 'https://suap.ifce.edu.br';