1.2.3-beta1 • Published 13 days ago

@olostecnologia/olos-cognito-auth v1.2.3-beta1

Weekly downloads
-
License
ISC
Repository
-
Last release
13 days ago

Olos Cognito Auth

O Olos Cognito Auth é um componente React que gerencia Tokens Cognito e gera Tokens para Aplicações Olos.

Como Instalar

Para instalar o componente, você pode utilizar o seguinte comando:

npm install @olostecnologia/olos-cognito-auth

Como Utilizar o Componente

Configuração

  1. Importe o "provider" OlosCognitoAuthProvider e adicione o componente como pai da sua aplicação. A única propriedade que deve ser passada para o "provider" é um objeto de configuração.
import { OlosCognitoAuthProvider, IOlosCognitoAuth } from "@olostecnologia/olos-cognito-auth";

const config: IOlosCognitoAuth = {
  tenantId: conf.tenantId,
  access_key_id: conf.access_key_id,
  secret_access_key: conf.secret_access_key,
  appName: conf.appName,
  redirect_sign_in: conf.redirect_sign_in,
  redirect_sign_out: conf.redirect_sign_out,
  environment: conf.environment,
  locale: conf.locale,
};

<OlosCognitoAuthProvider configuration={config}>
  <App />
</OlosCognitoAuthProvider>

Como Renderizar o Formulário

Para renderizar o formulário, siga os passos abaixo:

  1. Importe o componente OlosCognitoAuthForm.
  2. Renderize o componente dentro do contexto de OlosCognitoAuthProvider.
import { OlosCognitoAuthForm } from '@olostecnologia/olos-cognito-auth';

<OlosCognitoAuthForm />

Como Ouvir os Eventos

  1. Importe o hook useCognitoAuthEvents e aguarde os eventos de signIn, signOut e refreshToken. As informações sobre o Token Olos são retornadas nas respostas dos eventos.
import { useCognitoAuthEvents, CognitoAuthEvents } from "@olostecnologia/olos-cognito-auth";
import "@olostecnologia/olos-cognito-auth/src/Default.scss"; // Importe o SCSS aqui

useCognitoAuthEvents((response) => {
  const { event, data } = response;

  switch (event) {
    case CognitoAuthEvents.SIGN_IN:
      console.log('CognitoAuthEvents.SIGN_IN', data);
      break;

    case CognitoAuthEvents.SIGN_OUT:
      console.log('CognitoAuthEvents.SIGN_OUT', data);
      break;

    case CognitoAuthEvents.TOKEN_REFRESH:
      console.log('CognitoAuthEvents.TOKEN_REFRESH', data);
      break;
  }
});

Como Estilizar com styles.scss

Para estilizar o componente utilizando o arquivo styles.css, siga os passos abaixo:

  1. Importe o arquivo styles.scss no seu projeto.
import "@olostecnologia/olos-cognito-auth/src/styles.scss";

Agora, o componente será estilizado de acordo com as definições do arquivo styles.css.

Função para Validação de Senha

A função validatePassword foi criada para avaliar a robustez de uma senha fornecida. Ela retorna um array de mensagens de validação, cada uma contendo uma string de mensagem, um booleano indicando se é uma mensagem de erro ou sucesso, um ícone representativo e um rótulo ARIA para acessibilidade.

Exemplo de Uso:

import { validatePassword } from './validation';

const senha = 'exemploSenha123';
const resultadosValidacao = validatePassword(senha);

// Exemplo de saída:
// [
//   { message: 'A senha tem pelo menos 8 caracteres', isError: false, icon: '✅', ariaLabel: 'check' },
//   { message: 'A senha contém pelo menos 1 número', isError: false, icon: '✅', ariaLabel: 'check' },
//   { message: 'A senha contém pelo menos 1 caractere especial', isError: false, icon: '✅', ariaLabel: 'check' },
//   { message: 'A senha contém pelo menos 1 letra maiúscula', isError: false, icon: '✅', ariaLabel: 'check' },
//   { message: 'A senha contém pelo menos 1 letra minúscula', isError: false, icon: '✅', ariaLabel: 'check' },
// ]

Utilizando customPasswordValidation em OlosCognitoAuthForm

O componente OlosCognitoAuthForm possui uma propriedade chamada customPasswordValidation que permite fornecer lógica personalizada de validação de senha. Essa propriedade recebe uma função que recebe a senha como parâmetro e retorna uma matriz de mensagens de validação.

Exemplo:

const myCustomValidation = (password: string): { message: string, isError: boolean, icon: string, ariaLabel: string }[] => {
  const messages = [];
  
  if (password.length < 10) {
    messages.push({ message: "A senha precisa conter 10 letras", isError: true, icon: '❌', ariaLabel: 'error' });
  } else {
    messages.push({ message: "A senha contém 10 letras", isError: false, icon: '✅', ariaLabel: 'check' });
  }
  return messages;
}

function App() {
  // ... (código existente)

  return (
    <div className="App">
      {!!cognitoAuthProviderConfig && !!eventEmitter && (
        <OlosCognitoAuthProvider configuration={cognitoAuthProviderConfig} eventEmitter={eventEmitter} >
          <OlosCognitoAuthForm  customPasswordValidation={myCustomValidation} useThirdParty={true}/>
        </OlosCognitoAuthProvider>
      )}
    </div>
  );
}

Neste exemplo, myCustomValidation é uma função que recebe uma senha como parâmetro e retorna uma matriz de mensagens de validação. Você pode personalizar esta função de acordo com os requisitos específicos de validação de senha.

Ao utilizar o componente OlosCognitoAuthForm, passe sua função de validação personalizada como valor para a propriedade customPasswordValidation. Isso permite que você implemente uma lógica de validação de senha adaptada às necessidades específicas de sua aplicação.

1.2.3-beta1

13 days ago

1.2.2

1 month ago

1.2.2-beta9

1 month ago

1.2.2-beta8

1 month ago

1.2.2-beta5

1 month ago

1.2.2-beta7

1 month ago

1.2.2-beta6

1 month ago

1.2.2-beta12

1 month ago

1.2.2-beta11

1 month ago

1.2.2-beta10

1 month ago

1.2.1

1 month ago

1.2.2-beta4

1 month ago

1.2.2-beta1

1 month ago

1.2.2-beta3

1 month ago

1.2.2-beta2

1 month ago

1.2.1-beta14

1 month ago

1.2.1-beta11

1 month ago

1.2.1-beta12

1 month ago

1.2.1-beta13

1 month ago

1.2.1-beta4

1 month ago

1.2.1-beta3

1 month ago

1.2.1-beta2

1 month ago

1.2.1-beta1

1 month ago

1.2.1-beta8

1 month ago

1.2.1-beta7

1 month ago

1.2.1-beta6

1 month ago

1.2.1-beta5

1 month ago

1.2.1-beta9

1 month ago

1.2.1-beta10

1 month ago

1.2.0

1 month ago

1.1.9

2 months ago

1.1.8

2 months ago

1.1.7

2 months ago

1.2.0-beta1

2 months ago

1.2.0-beta3

2 months ago

1.2.0-beta2

2 months ago

1.2.0-beta4

2 months ago

1.1.6

2 months ago

1.1.5

2 months ago

1.1.4

2 months ago

1.1.1

2 months ago

1.1.0

2 months ago

1.1.3

2 months ago

1.1.2

2 months ago

1.0.8

2 months ago

1.0.7-beta.9

2 months ago

1.0.7-beta.5

2 months ago

1.0.7-beta.6

2 months ago

1.0.7-beta.7

2 months ago

1.0.7-beta.8

2 months ago

1.0.7-beta.2

2 months ago

1.0.7-beta.3

2 months ago

1.0.7-beta.4

2 months ago

1.0.7-beta.91

2 months ago

1.0.7

2 months ago

1.0.8-beta.0

2 months ago

1.0.7-beta.1

2 months ago

1.0.6

2 months ago

1.0.5

3 months ago

1.0.5-beta.9

3 months ago

1.0.5-beta.7

3 months ago

1.0.5-beta.8

3 months ago

1.0.5-beta.6

3 months ago

1.0.5-beta.5

3 months ago

1.0.5-beta.3

3 months ago

1.0.5-beta.4

3 months ago

1.0.5-beta.2

3 months ago

1.0.5-beta.1

3 months ago

1.0.4

5 months ago

1.0.2

6 months ago

0.3.31

10 months ago

1.0.1

6 months ago

0.3.30

10 months ago

1.0.0

6 months ago

0.3.39

9 months ago

0.3.38

10 months ago

0.3.37

10 months ago

0.3.36

10 months ago

0.3.35

10 months ago

0.3.34

10 months ago

0.3.33

10 months ago

1.0.3

6 months ago

0.3.32

10 months ago

0.3.29

10 months ago

0.3.28

10 months ago

0.3.27

10 months ago

0.3.26

10 months ago

0.3.25

10 months ago

0.3.24

10 months ago

0.3.52

7 months ago

0.3.51

7 months ago

0.3.50

7 months ago

0.3.42

9 months ago

0.3.41

9 months ago

0.3.40

9 months ago

0.3.49

7 months ago

0.3.48

7 months ago

0.3.47

7 months ago

0.3.46

7 months ago

0.3.45

9 months ago

0.3.44

9 months ago

0.3.43

9 months ago

0.3.17

11 months ago

0.3.16

11 months ago

0.3.15

11 months ago

0.3.14

11 months ago

0.3.13

11 months ago

0.3.12

11 months ago

0.3.11

11 months ago

0.3.20

11 months ago

0.2.96

11 months ago

0.2.95

11 months ago

0.2.94

11 months ago

0.3.23

11 months ago

0.3.22

11 months ago

0.3.21

11 months ago

0.3.0

11 months ago

0.3.19

11 months ago

0.3.18

11 months ago

0.3.1

11 months ago

0.2.93

1 year ago

0.2.92

1 year ago

0.2.91

1 year ago

0.2.9

1 year ago

0.2.8

1 year ago

0.2.7

1 year ago

0.2.6

1 year ago

0.2.5

1 year ago

0.2.4

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.9

1 year ago

0.1.8

1 year ago

0.1.7

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago