Realizando a autenticação da plataforma via node


REQUISITOS MÍNIMOS:

INICIANDO SEU PROJETO:

1 – Criar uma pasta com o nome do projeto exemplo:

mkdir starter-node-auth

2 – Dentro da pasta, vamos iniciar um novo projeto:

npm init

Obs.: ao iniciar o comando npm init, o terminal irá requisitar várias informações como:

  • package name: nome do projeto
  • version: versão do projeto
  • description: descrição clara sobre o projeto
  • entry point: (index.js) arquivo de entrada
  • test command: comando de teste a ser executado. Deixar em branco
  • git repository: repositório no git
  • keywords: palavras-chave que definem o projeto
  • author: nome do autor do projeto
  • license: licensa do projeto

Nenhum dos campos é obrigatório, caso não haja necessidade de informar basta pressionar a tecla enter.

3 – Criar o arquivo index.js

Windows: echo . > index.js Linux: touch index.js

4 – Instalar a sdk core para utilizar o serviço de autenticação:

Este comando irá instalar a última versão do senior-core no projeto e referenciar para ser usado como dependência do mesmo.

npm i --save @seniorsistemas/senior-core

5 – Autenticando-se na plataforma:

Vamos começar abrindo o arquivo index.js no Visual Studio Code: File > Open Folder > pasta do projeto.

Após abrir o arquivo index.js, precisamos importar a lib de api:

index.js:

const SeniorApi = require('@seniorsistemas/senior-core/dist/lib/SeniorApi');

6 – Após isso para facilitar os testes vamos criar uma função para requisitar ao cliente o usuário e a senha:

index.js:

... // Readline ja é uma biblioteca própria do node, // Não é necessário utilizar o npm install. const readline = require('readline'); function askQuestion(query){ const rl = readline.createInterface({ input: process.stdin, output: process.stdout }) return new Promise(resolve => rl.question(query, ans =>{ rl.close(); resolve(ans); })) } ...

7 – Agora está tudo pronto para realizarmos a chamada de login para a plataforma:

index.js:

... async function init() { // Vamos utilizar a função criada anteriormente para requisitar os dados de login via shell. const user = await askQuestion("Informe o usuário: "); const password = await askQuestion("Informe a senha: "); //Referência SeniorApi para ajuste de ambiente var seniorApi = new SeniorApi(); //Descomentar linha abaixo caso queira realizar autenticação em Produção //seniorApi.environment = "PROD"; // Instanciando a api de autenticação. const authenticationApi = seniorApi.authentication; // Realizando o request de login. const result = await authenticationApi.login(user, password); console.log(result); } init(); ...

8 – Para executar o arquivo index.js basta somente executar o seguinte comando:

node .\index.js

O seguinte cenário deve acontecer:

//Informe o usuário: nomeDoUsuário //Informe a senha: senha { statusCode: 200, body: { jsonToken: '{"scope":"scope","expires_in":604800,"username":"nomeDoUsuario","token_type":"Bearer","access_token":"token","refresh_token":"refresh_token"}' } }