EAuthenticator - Clone do Google Authenticator para Linux

Este artigo apresenta o EAuthenticator, um clone do Google Authenticator para desktop. No título consta como clone para Linux, mas na verdade trata-se de um aplicativo multiplataforma, escrito em Electron script.

[ Hits: 2.761 ]

Por: Fábio Berbert de Paula em 11/05/2020 | Blog: https://fabio.automatizando.dev


Introdução



Este artigo é uma continuidade de minha dica anterior, onde abordei como gerar tokens TOTP a partir de chaves na base 32 com o oathtool, simulando o comportamento do cliente Google Authenticator.

Nesta dica veremos outra alternativa, que é o EAuthenticator, cujo nome vem de Electron Authenticator, ou seja, um clone do Google Authenticator escrito em Electron.

Para quem não conhece, Electron é, a grosso modo, um conjunto de bibliotecas JavaScript derivada do React que nos permite criar aplicativos multiplataforma para desktop.

O projeto é distribuído sob licença GPL e seu repositório no GitHub é:

Pré-requisito

É necessário que você possua o Node.js instalado no sistema. Se estiver usando Debian, Ubuntu e derivados, confira minha dica: Como instalar última versão Node.js via repositório no Ubuntu, Debian e derivados [Dica]

Instalação

Primeiro vamos clonar o projeto:

git clone https://github.com/Nikolasel/EAuthenticator.git

Entre na pasta criada:

cd EAuthenticator

Instale as dependências:

npm install

Gere o arquivo de licenças licenses.json:

npm run license

Se chegou até aqui, tudo pronto! Para executar o aplicativo digite:

npm start
Clique no botão "+" para adicionar uma conta:

Gerando um arquivo binário

Ninguém vai querer ficar entrando no diretório raiz do projeto e executar "npm start" toda vez que quiser abrir o aplicativo, não é mesmo? Pois bem, vamos gerar um arquivo binário para o teu sistema operacional!

Estando no diretório raiz do projeto, digite:

npm run package-linux

Será gerado um binário dentro do diretório "release-builds", no meu caso:

ls release-builds
EAuthenticator-linux-x64

E dentro do subdiretório EAuthenticator-linux-x64 haverá um arquivo executável "EAuthenticator".

Agora basta executá-lo:

./release-builds/EAuthenticator-linux-x64/EAuthenticator

O problema é que o arquivo precisa de algumas bibliotecas que estão contidas no diretório no qual ele pertence, então não é possível mover o binário sozinho para outro diretório (você poderá no máximo criar um link simbólico em um diretório do PATH apontando para ele):

ls release-builds/EAuthenticator-linux-x64
chrome_100_percent.pak
chrome_200_percent.pak
EAuthenticator
icudtl.dat
libEGL.so
libffmpeg.so
libGLESv2.so
libVkICD_mock_icd.so
LICENSE
LICENSES.chromium.html
locales
natives_blob.bin
resources
resources.pak
snapshot_blob.bin
swiftshader
v8_context_snapshot.bin
version


Como resolver? Bom, a melhor solução será empacotar o aplicativo.

Criando um pacote .DEB

Para criar um pacote .DEB, estando no diretório raiz do projeto digite:

npm run create-installer-deb

Será gerado um arquivo .deb dentro de release-builds:

ls release-builds/*deb
eauthenticator_0.2.0~dev_amd64.deb

Instale o pacote com:

sudo dpkg -i release-builds/eauthenticator_0.2.0~dev_amd64.deb

Verificando:

dpkg -l eauthenticator
ii  eauthenticator 0.2.0~dev-1  amd64        An Electron Desktop app compatible with Google Authenticator

Executando:

eauthenticator

Bônus: criando um pacote .RPM

Para criar um pacote RPM, primeiro instale o rpm-build:

sudo dnf install rpm-build

Em seguida, no diretório raiz do projeto, execute:

npm run create-installer-rpm

Será gerado um arquivo .rpm dentro de release-builds:

ls release-builds/*rpm

Também é possível gerar um executável para Windows, mas este procedimento foge ao escopo do artigo.

Conclusão

EAuthenticator é mais uma mostra do poder do software livre. Tive pouco contato com a linguagem Electron, mas ela está se mostrando bem promissora para o desenvolvimento de aplicativos desktop multiplataforma. A quem se interessar, fica a dica de estudo durante essa quarentena, que pelo visto ainda irá render. Vale lembrar que Electron basicamente é JavaScript, então seu aprendizado é muito recomendável! Na pior das hipóteses você estará treinando seus conhecimentos em JavaScript, que hoje é a linguagem de programação mais utilizada no mundo.

Um bom ponto de partida no aprendizado da Electron é estudar o código do EAuthenticator.

Fonte: https://github.com/Nikolasel/EAuthenticator

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Paginação de resultados em PHP/MySQL

Formatando Disquetes

Como criar um clicador de sites com NodeJS

GitHub Copilot - Inteligência Artificial no NeoVim

adb - Como capturar em vídeo a tela de seu Android

Leitura recomendada

Como minimizar CSS e Javascript via linha de comando

Detonando robots!

BlueGriffon, o dreamweaver do Linux

Criando JPG animado com o JpegAnim

Servidor LAMP no Linux Mint e Ubuntu

  
Comentários
[1] Comentário enviado por removido em 11/05/2020 - 10:00h

Boa! Não conhecia o EAuthenticator...

Fabio, só uma correção nessa parte:
"Para quem não conhece, Electron é, a grosso modo, um conjunto de bibliotecas JavaScript derivada do React que nos permite criar aplicativos multiplataforma para desktop. "

Na verdade, Electron é baseado na engine de renderização do chromium e funciona combinado com node.js. O React é uma lib para construção de front-end SPA (Single Page Application), ou seja, não tem ligação com o Electron. Entretanto, vc pode unir React com Electron para construir interfaces mais inteligentes, assim como vc pode usar também o Vue ao invés de React, com o Electron.

Basicamente, podemos dizer que o Electron é um chromium capado que fornece uma janela com componentes web e com uma API própria para construir aplicações desktops multiplataforma.

[2] Comentário enviado por maurixnovatrento em 11/05/2020 - 13:54h


Interessante esse EAutenticator. Não conhecia.

___________________________________
Conhecimento não se Leva para o Túmulo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts