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"}'
}
}