Existem muitas ferramentas excelentes para a criação de aplicativos modernos que podem facilitar nossa vida, mas um aspecto que costuma ser complicado e demorado é a autenticação. O cenário em torno da criação de aplicativos hoje é diferente do que costumava ser, o que pode dificultar o uso eficaz dos métodos tradicionais de autenticação. Além disso, há um desejo cada vez maior por recursos de autenticação que são mais recentes em sua concepção, como autenticação multifatorial, logon único e login sem senha. Vamos dar uma olhada mais de perto em alguns desses recursos.


Tokens da Web JSON é preferível, mas tem o custo da necessidade de manter várias partes do aplicativo de página única sincronizadas com alguma indicação de que o usuário está autenticado. Normalmente, isso é feito verificando se o JWT do usuário é válido e, em seguida, mostrando condicionalmente os elementos e restringindo as rotas com base nesse resultado.


PassportJS que podem facilitar as coisas para o desenvolvedor, mas, mesmo com uma biblioteca, isso ainda pode ser uma tarefa complicada que exige um pouco de manutenção.


Segurança extra


Tanto as empresas quanto os usuários estão exigindo cada vez mais segurança reforçada nos aplicativos, e medidas extras como autenticação multifator pode ser muito eficaz. O problema é que esse recurso não é trivial. Pode ser difícil de implementar e propenso a erros ao codificá-lo manualmente, e certamente é algo que precisa ser feito corretamente.


Auth0 elimina toda a complexidade da autenticação e facilita a identidade para os desenvolvedores. Com o Auth0, o senhor pode adicionar autenticação a qualquer aplicativo em menos de 10 minutos e implementar recursos como login social, autenticação de múltiplos fatores e logon único com o simples toque de um botão. É realmente a maneira mais fácil de adicionar autenticação ao seu aplicativo!


Com o Auth0, o senhor obtém um camada gratuita pronta para produção que lhe dá 7.000 usuários ativos regulares sem nenhum custo. Um usuário ativo regular é aquele que fez login em algum momento nos últimos 30 dias, o que representa apenas cerca de 15% da base de usuários de muitas empresas.


conta Auth0. Depois de se registrar, vá para sua conta área de gerenciamento e confira o Aplicativo padrão que é criado para o senhor na seção Aplicativos link. É aqui que o senhor pode encontrar alguns dos detalhes necessários para que o Auth0 funcione no seu aplicativo, inclusive o domínio, o ID do cliente e a chave secreta.


O senhor também precisará inserir uma origem permitida ao testar seu aplicativo. Para fazer isso, basta digitar http://localhost:<your-port> no campo Origens permitidas nas configurações do seu aplicativo.


Enquanto estiver na área de gerenciamento, crie um novo usuário na seção Usuários para que o senhor tenha algumas credenciais para fazer login mais tarde.


Bloqueio é o widget de caixa de login fornecido pela Auth0 que permite que o senhor tenha uma tela de autenticação com todos os recursos, bastando inserir uma tag de script. O senhor pode obter o Lock no CDN da Auth0 e adicioná-lo ao seu index.html .


  <!-- index.html -->

  <!-- Auth0Lock script -->
  <script src="https://cdn.auth0.com/js/lock-9.0.min.js"></script>

  <!-- Setting the right viewport -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />


react lock auth0


Se o usuário for autenticado com sucesso, ele será redirecionado de volta ao aplicativo com seu JWT (denominado id_token) como um hash. Esse JWT é assinado com a chave secreta definida nas configurações do aplicativo e agora pode ser usado para obter acesso a recursos protegidos em seu servidor. Mas, primeiro, ele precisa ser definido no armazenamento local.


Documentação do Auth0Lock para obter mais detalhes.


react profile auth0


este projeto de sementes para obter um exemplo rápido de como configurar um aplicativo Express com middleware JWT.


O método de envio de solicitações XHR para o backend fica a seu critério, desde que o senhor possa anexar um cabeçalho personalizado. Usando o fetch APIé tão simples quanto passar um objeto com alguma configuração.


 // LoggedIn.jsx

 ...
 callApi: function() {
  var getFoos = fetch('/api/foos', {
    headers: {
      'Authorization': 'Bearer ' + localStorage.getItem('id_token')
    },
    method: 'GET',
    cache: false
  });

  getFoos.then(function (response) {
    response.json().then(function (foos) {
      // Put the results on a property
      // to be displayed in the view
      console.log('the foos:', foos);
    });
  });
}
...


O JWT do usuário é enviado como um Authorization com o cabeçalho Bearer .


JTI para colocar tokens na lista negra. A expiração do token pode ser controlada nas configurações do seu aplicativo na área de gerenciamento.


react social auth0


O senhor também pode habilitar a autenticação multifator na seção Multifactor Auth (Autenticação multifator) link. Depois de selecionar o Google Authenticator ou o Duo como seu provedor de MFA, basta inserir o ID do cliente do seu aplicativo no campo CLIENTS_WITH_MFA que aparece no trecho de código. Agora, quando seus usuários fizerem login, eles serão solicitados a passar pelo processo de autenticação em duas etapas uma vez a cada 30 dias.


react multifactor auth0


este artigo sobre o assunto, bem como o correspondente correspondente.


Auth0 oferece uma solução drop-in que elimina toda a complexidade e permite que o senhor concentre seus esforços no desenvolvimento do aplicativo real. Os tokens da Web JSON oferecem um método sem estado de autenticação de usuários e proteção de endpoints de API, e essa é a solução perfeita para aplicativos de página única, como os criados com o React.


Para obter mais detalhes sobre a implementação do Auth0 em um aplicativo React, acesse o documentação. O senhor também pode consultar o quickstart docs para encontrar SDKs e amostras de todas as bibliotecas e estruturas populares de front-end, back-end e dispositivos móveis. Aqui está uma amostra do que está disponível:


Ryan Chenkie

Sobre Ryan Chenkie

Ryan é um desenvolvedor full-stack canadense que cria conteúdo para a Auth0, incluindo tutoriais detalhados e projetos iniciais para as mais novas estruturas e tecnologias, como Angular 2, React e Aurelia. Quando não está programando, ele pode ser encontrado com sua esposa, tocando violão ou se interessando pelo espaço sideral.