A autenticação no IntegraNFe é feita através da utilização de uma chave de API. Esta chave serve para que o IntegraNFe identifique a sua conta, e conceda permissões para que o seu sistema se comunique com o Integra em nome da conta em questão.
Há duas maneiras de se autenticar, sendo a primeira utilizando HTTP Basic Auth.
A outra maneira é enviar um token em Base64 como parâmetro no header da requisição, este parâmetro deverá ter o nome de "Authorization".
Para definir o tipo de ambiente, homologação ou produção, o parâmetro é passado no objeto "json", enviado na requisição de emissão de nota fiscal eletrônica de produto ou serviço.
Criando suas chaves de API (API Tokens)
Trate suas chaves de API como senhas
Não inclua sua chave de API publicamente em nenhum lugar do seu site ou javascript. Lembre-se que esta chave dá acesso total ao seus dados no IntegraNFe.
HTTP Basic Auth
Para gerar o header de autenticação HTTP básico deve-se seguir os seguintes passos:
Utilizar em nome de usuário seu email registrado no IntegraNFe, e adicionar a senha para este usuário, com este dois valores deve-se gerar uma string em Base64, observe o exemplo abaixo.
$http.defaults.headers.common['Authorization'] = "Basic " + btoa(usuario + ":" + senha);
Importante
O Header da requisição tem que conter o atributo "Authorization" e seu valor deve conter a palavra "Basic " concatenada com a string em Base64:
Authorization = Basic eFyaW9AZW1haWwuY29tIiwKICAgICJwYXNzd29yZCI6InN1YXNlbmhhIgp9A string em Base64 é um mero exemplo.
HTTP Basic Auth
Você pode aprender mais sobre HTTP Basic Auth em https://en.wikipedia.org/wiki/Basic_access_authentication
Boas práticas
Como boa prática é interessante não misturar o que são de fato parâmetros da requisição com a autenticação da mesma. Portanto, recomendamos a utilização de HTTP Basic Auth.
HTTP Bearer Token
Os usuários da API deverão gerar um token de autorização quando fizerem requisições, cada requisição deve conter no Header o atributo "Authorization" acompanhado de Bearer mais a credencial, isto será detalhado abaixo.
Primeiramente o usuário da API deverá se cadastrar no site do IntegraNFe, após sua regularização, o mesmo deverá acessar o site, ir na página meu perfil, clicar na aba Integração API, nesta página será possível gerar a credencial (token). Após basta copiá-la e usá-la nas requisições. Abaixo temos as telas a serem acessadas.
Informação
Na primeira imagem abaixo, que é a Home, onde está escrito usuário aparecerá o seu nome de usuário clique nele para abrir um modal onde aparecerá um botão com os dizeres "Meu Perfil" clique nele para ser direcionado a tela do seu perfil.
Na segunda imagem clique na aba "Integração API".
Na aba "Integração API" será exibido um pequeno texto e um botão com os dizeres "Obter Credencial", clique nele e será exibido sua credencial, o status, e a data de expiração, a credencial terá validade de um dia.
Quando o status da credencial estiver "Expirado", será possível atualizá-la clicando em "Atualizar Credencial" como pode na última figura.
eyJhbGciOiJIUzUxMiJ9eyJzdWIiOiJzZXVlbWFpbEBlbWFpbC5jb20iLCJqdGkiOiIxNSIsImV4cCI6MTYxNjAwNDg1NywiaWF0IjoxNjE1OTE4NDU3LCJpc3MiOiJJbnRlZ3JhTkZlIn0=
Nota
No cabeçalho de cada requisição deverá conter o atributo "Authorization" como no exemplo abaixo:
Authorization = Bearer eyJhbGciOiJIUzUxMiJ9eyJzdWIiOiJzZXVlbWFpbEBlbWFpbC5jb20iLCJqdGkiOiIxNSIsImV4cCI6MTYxNjAwNDg1NywiaWF0IjoxNjE1OTE4NDU3LCJpc3MiOiJJbnRlZ3JhTkZlIn0=
Importante ressaltar que após a palavra "Bearer" deve conter um espaço antes da credencial.
O valor mostrado aqui é um mero exemplo;
$http.defaults.headers.common['Authorization'] = "Bearer " + "eyJhbGciOiJIUzUxMiJ9eyJzdWIiOiJzZXVlbWFpbEBlbWFpbC5jb20iLCJqdGkiOiIxNSIsImV4cCI6MTYxNjAwNDg1NywiaWF0IjoxNjE1OTE4NDU3LCJpc3MiOiJJbnRlZ3JhTkZlIn0="