@autenticar-me/vue 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,360 +1,360 @@
1
- # @autenticar-me/vue
2
-
3
- Pacote Vue para integração com a plataforma Autenticar.me.
4
-
5
- ## Sobre
6
-
7
- Este pacote fornece componentes, composables e utilitários para facilitar a implementação de autenticação e gerenciamento de usuários em aplicações Vue utilizando a Autenticar.me.
8
-
9
- ## Instalação
10
-
11
- ```bash
12
- npm install @autenticar-me/vue
13
- ```
14
-
15
- ## Uso Básico
16
-
17
- ### Configuração do Plugin
18
-
19
- ```javascript
20
- import { createApp } from 'vue'
21
- import { atmPlugin } from '@autenticar-me/vue'
22
- import App from './App.vue'
23
-
24
- const app = createApp(App)
25
-
26
- app.use(atmPlugin, {
27
- domain: 'seu-dominio.autenticar.me',
28
- publicKey: 'sua-chave-publica'
29
- })
30
-
31
- app.mount('#app')
32
- ```
33
-
34
- ## Composables
35
-
36
- - **`useAtm()`** - Acesso ao contexto completo da Autenticar.me
37
- - **`useAtmClient()`** - Cliente da API
38
- - **`useAuth()`** - Gerenciamento de autenticação
39
- - **`useTheme()`** - Controle de tema (light/dark)
40
-
41
- ## Componentes
42
-
43
- ### Formulários de Autenticação
44
-
45
- #### SignIn
46
-
47
- Formulário completo de login com suporte a autenticação por email/senha e email link.
48
-
49
- **Props:**
50
- - **`fallbackRedirectUrl`** (string, padrão: `"/"`) - URL para redirecionar após login bem-sucedido
51
- - **`initialValues`** (object, opcional) - Valores iniciais para preencher os campos do formulário
52
- - `emailAddress` (string) - Email ou username
53
- - `password` (string) - Senha
54
- - **`signUpUrl`** (string, opcional) - URL para redirecionar quando o usuário clicar em "Cadastre aqui". Se não fornecido, emite evento `sign-up`
55
-
56
- **Eventos:**
57
- - **`completed`** - Emitido quando o login é concluído com sucesso
58
- - **`sign-up`** - Emitido quando o usuário clica em "Cadastre aqui" e não há `signUpUrl` definido
59
-
60
- **Exemplos:**
61
- ```vue
62
- <template>
63
- <SignIn
64
- fallbackRedirectUrl="/dashboard"
65
- :initialValues="{ emailAddress: 'usuario@exemplo.com' }"
66
- signUpUrl="/register"
67
- />
68
- </template>
69
-
70
- <script setup>
71
- import { SignIn } from '@autenticar-me/vue'
72
- </script>
73
- ```
74
-
75
- ```vue
76
- <template>
77
- <SignIn
78
- @completed="handleLoginCompleted"
79
- @sign-up="showSignUpModal"
80
- />
81
- </template>
82
-
83
- <script setup>
84
- import { SignIn } from '@autenticar-me/vue'
85
-
86
- const handleLoginCompleted = () => {
87
- console.log('Login realizado com sucesso!')
88
- }
89
-
90
- const showSignUpModal = () => {
91
- console.log('Usuário quer se cadastrar')
92
- }
93
- </script>
94
- ```
95
-
96
- #### SignUp
97
-
98
- Formulário completo de cadastro com validação de campos e senha.
99
-
100
- **Props:**
101
- - **`fallbackRedirectUrl`** (string, padrão: `"/"`) - URL para redirecionar após cadastro bem-sucedido
102
- - **`initialValues`** (object, opcional) - Valores iniciais para preencher os campos do formulário
103
- - `first_name` (string) - Primeiro nome
104
- - `last_name` (string) - Sobrenome
105
- - `email_address` (string) - Email
106
- - `password` (string) - Senha
107
- - `confirm_password` (string) - Confirmação de senha
108
- - **`signInUrl`** (string, opcional) - URL para redirecionar quando o usuário clicar em "Faça login". Se não fornecido, emite evento `sign-in`
109
-
110
- **Eventos:**
111
- - **`completed`** - Emitido quando o cadastro é concluído com sucesso
112
- - **`sign-in`** - Emitido quando o usuário clica em "Faça login" e não há `signInUrl` definido
113
-
114
- **Exemplos:**
115
- ```vue
116
- <template>
117
- <SignUp
118
- fallbackRedirectUrl="/dashboard"
119
- :initialValues="{ first_name: 'João', email_address: 'joao@exemplo.com' }"
120
- signInUrl="/login"
121
- />
122
- </template>
123
-
124
- <script setup>
125
- import { SignUp } from '@autenticar-me/vue'
126
- </script>
127
- ```
128
-
129
- ```vue
130
- <template>
131
- <SignUp
132
- @completed="handleSignUpCompleted"
133
- @sign-in="showSignInModal"
134
- />
135
- </template>
136
-
137
- <script setup>
138
- import { SignUp } from '@autenticar-me/vue'
139
-
140
- const handleSignUpCompleted = () => {
141
- console.log('Cadastro realizado com sucesso!')
142
- }
143
-
144
- const showSignInModal = () => {
145
- console.log('Usuário quer fazer login')
146
- }
147
- </script>
148
- ```
149
-
150
- ### Botões de Autenticação
151
-
152
- #### SignInButton
153
-
154
- Botão que abre um modal de login quando clicado.
155
-
156
- **Props:**
157
- - **`fallbackRedirectUrl`** (string, padrão: `"/"`) - URL para redirecionar após login bem-sucedido no modal
158
- - **`signUpUrl`** (string, opcional) - URL para redirecionar quando o usuário clicar em "Cadastre aqui" dentro do modal. Se não fornecido, alterna para o formulário de cadastro dentro do modal
159
-
160
- **Exemplo:**
161
- ```vue
162
- <template>
163
- <SignInButton
164
- fallbackRedirectUrl="/dashboard"
165
- signUpUrl="/register"
166
- />
167
- </template>
168
-
169
- <script setup>
170
- import { SignInButton } from '@autenticar-me/vue'
171
- </script>
172
- ```
173
-
174
- #### SignUpButton
175
-
176
- Botão que abre um modal de cadastro quando clicado. Só é exibido se o registro estiver habilitado nas configurações.
177
-
178
- **Props:**
179
- - **`fallbackRedirectUrl`** (string, padrão: `"/"`) - URL para redirecionar após cadastro bem-sucedido no modal
180
- - **`signInUrl`** (string, opcional) - URL para redirecionar quando o usuário clicar em "Faça login" dentro do modal. Se não fornecido, alterna para o formulário de login dentro do modal
181
-
182
- **Exemplo:**
183
- ```vue
184
- <template>
185
- <SignUpButton
186
- fallbackRedirectUrl="/dashboard"
187
- signInUrl="/login"
188
- />
189
- </template>
190
-
191
- <script setup>
192
- import { SignUpButton } from '@autenticar-me/vue'
193
- </script>
194
- ```
195
-
196
- #### SignOutButton
197
-
198
- Botão que realiza logout do usuário quando clicado. Só é exibido quando há um usuário autenticado.
199
-
200
- **Exemplo:**
201
- ```vue
202
- <template>
203
- <SignOutButton />
204
- </template>
205
-
206
- <script setup>
207
- import { SignOutButton } from '@autenticar-me/vue'
208
- </script>
209
- ```
210
-
211
- ### Componentes de Perfil
212
-
213
- #### UserProfile
214
-
215
- Componente de perfil do usuário com dropdown menu e modal de gerenciamento. Permite visualizar e editar informações pessoais, gerenciar emails, redefinir senha e gerenciar sessões ativas.
216
-
217
- **Exemplo:**
218
- ```vue
219
- <template>
220
- <UserProfile />
221
- </template>
222
-
223
- <script setup>
224
- import { UserProfile } from '@autenticar-me/vue'
225
- </script>
226
- ```
227
-
228
- ### Componentes de Layout
229
-
230
- #### SignedIn
231
-
232
- Componente wrapper que só renderiza seu conteúdo quando o usuário está autenticado.
233
-
234
- **Exemplo:**
235
- ```vue
236
- <template>
237
- <SignedIn>
238
- <Dashboard />
239
- </SignedIn>
240
- </template>
241
-
242
- <script setup>
243
- import { SignedIn } from '@autenticar-me/vue'
244
- import Dashboard from './Dashboard.vue'
245
- </script>
246
- ```
247
-
248
- #### SignedOut
249
-
250
- Componente wrapper que só renderiza seu conteúdo quando o usuário não está autenticado e o estado de autenticação foi carregado.
251
-
252
- **Exemplo:**
253
- ```vue
254
- <template>
255
- <SignedOut>
256
- <LandingPage />
257
- </SignedOut>
258
- </template>
259
-
260
- <script setup>
261
- import { SignedOut } from '@autenticar-me/vue'
262
- import LandingPage from './LandingPage.vue'
263
- </script>
264
- ```
265
-
266
- ### Outros Componentes
267
-
268
- #### AuthSwitcher
269
-
270
- Componente que alterna automaticamente entre os componentes de autenticação e perfil do usuário. Exibe UserProfile quando há um usuário autenticado, ou os botões SignInButton e SignUpButton quando não há.
271
-
272
- **Exemplo:**
273
- ```vue
274
- <template>
275
- <AuthSwitcher />
276
- </template>
277
-
278
- <script setup>
279
- import { AuthSwitcher } from '@autenticar-me/vue'
280
- </script>
281
- ```
282
-
283
- ## Casos de Uso
284
-
285
- ### Usando Botões com Modal
286
-
287
- Os botões abrem modais com os formulários e permitem alternância automática entre login/cadastro dentro do modal:
288
-
289
- ```vue
290
- <template>
291
- <SignInButton fallbackRedirectUrl="/dashboard" />
292
- <SignUpButton fallbackRedirectUrl="/dashboard" />
293
- </template>
294
-
295
- <script setup>
296
- import { SignInButton, SignUpButton } from '@autenticar-me/vue'
297
- </script>
298
- ```
299
-
300
- **Comportamento:**
301
- - Ao clicar em "Cadastre aqui" no modal de login, o conteúdo muda para o formulário de cadastro
302
- - Ao clicar em "Faça login" no modal de cadastro, o conteúdo muda para o formulário de login
303
- - Após autenticação bem-sucedida, o modal fecha e redireciona para `fallbackRedirectUrl`
304
-
305
- ### Usando Formulários em Páginas Dedicadas
306
-
307
- ```vue
308
- <template>
309
- <div class="login-page">
310
- <SignIn
311
- fallbackRedirectUrl="/dashboard"
312
- signUpUrl="/cadastro"
313
- />
314
- </div>
315
- </template>
316
-
317
- <script setup>
318
- import { SignIn } from '@autenticar-me/vue'
319
- </script>
320
- ```
321
-
322
- ### Controle de Acesso por Autenticação
323
-
324
- ```vue
325
- <template>
326
- <div>
327
- <SignedOut>
328
- <h1>Bem-vindo! Faça login para continuar</h1>
329
- <SignInButton />
330
- </SignedOut>
331
-
332
- <SignedIn>
333
- <h1>Área Restrita</h1>
334
- <UserProfile />
335
- </SignedIn>
336
- </div>
337
- </template>
338
-
339
- <script setup>
340
- import { SignedIn, SignedOut, SignInButton, UserProfile } from '@autenticar-me/vue'
341
- </script>
342
- ```
343
-
344
- ## Tipos TypeScript
345
-
346
- O pacote exporta tipos para TypeScript:
347
-
348
- - **`User`** - Tipo do usuário
349
- - **`Session`** - Tipo da sessão
350
- - **`Configurations`** - Configurações da plataforma
351
- - **`UserAttribute`** - Atributos do usuário
352
- - **`PluginOptions`** - Opções do plugin
353
-
354
- ## Utilidades
355
-
356
- - **`getDeviceToken()`** - Obtém token do dispositivo para autenticação
357
-
358
- ## Licença
359
-
360
- MIT
1
+ # @autenticar-me/vue
2
+
3
+ Pacote Vue para integração com a plataforma Autenticar.me.
4
+
5
+ ## Sobre
6
+
7
+ Este pacote fornece componentes, composables e utilitários para facilitar a implementação de autenticação e gerenciamento de usuários em aplicações Vue utilizando a Autenticar.me.
8
+
9
+ ## Instalação
10
+
11
+ ```bash
12
+ npm install @autenticar-me/vue
13
+ ```
14
+
15
+ ## Uso Básico
16
+
17
+ ### Configuração do Plugin
18
+
19
+ ```javascript
20
+ import { createApp } from 'vue'
21
+ import { atmPlugin } from '@autenticar-me/vue'
22
+ import App from './App.vue'
23
+
24
+ const app = createApp(App)
25
+
26
+ app.use(atmPlugin, {
27
+ domain: 'seu-dominio.autenticar.me',
28
+ publicKey: 'sua-chave-publica'
29
+ })
30
+
31
+ app.mount('#app')
32
+ ```
33
+
34
+ ## Composables
35
+
36
+ - **`useAtm()`** - Acesso ao contexto completo da Autenticar.me
37
+ - **`useAtmClient()`** - Cliente da API
38
+ - **`useAuth()`** - Gerenciamento de autenticação
39
+ - **`useTheme()`** - Controle de tema (light/dark)
40
+
41
+ ## Componentes
42
+
43
+ ### Formulários de Autenticação
44
+
45
+ #### SignIn
46
+
47
+ Formulário completo de login com suporte a autenticação por email/senha e email link.
48
+
49
+ **Props:**
50
+ - **`fallbackRedirectUrl`** (string, padrão: `"/"`) - URL para redirecionar após login bem-sucedido
51
+ - **`initialValues`** (object, opcional) - Valores iniciais para preencher os campos do formulário
52
+ - `emailAddress` (string) - Email ou username
53
+ - `password` (string) - Senha
54
+ - **`signUpUrl`** (string, opcional) - URL para redirecionar quando o usuário clicar em "Cadastre aqui". Se não fornecido, emite evento `sign-up`
55
+
56
+ **Eventos:**
57
+ - **`completed`** - Emitido quando o login é concluído com sucesso
58
+ - **`sign-up`** - Emitido quando o usuário clica em "Cadastre aqui" e não há `signUpUrl` definido
59
+
60
+ **Exemplos:**
61
+ ```vue
62
+ <template>
63
+ <SignIn
64
+ fallbackRedirectUrl="/dashboard"
65
+ :initialValues="{ emailAddress: 'usuario@exemplo.com' }"
66
+ signUpUrl="/register"
67
+ />
68
+ </template>
69
+
70
+ <script setup>
71
+ import { SignIn } from '@autenticar-me/vue'
72
+ </script>
73
+ ```
74
+
75
+ ```vue
76
+ <template>
77
+ <SignIn
78
+ @completed="handleLoginCompleted"
79
+ @sign-up="showSignUpModal"
80
+ />
81
+ </template>
82
+
83
+ <script setup>
84
+ import { SignIn } from '@autenticar-me/vue'
85
+
86
+ const handleLoginCompleted = () => {
87
+ console.log('Login realizado com sucesso!')
88
+ }
89
+
90
+ const showSignUpModal = () => {
91
+ console.log('Usuário quer se cadastrar')
92
+ }
93
+ </script>
94
+ ```
95
+
96
+ #### SignUp
97
+
98
+ Formulário completo de cadastro com validação de campos e senha.
99
+
100
+ **Props:**
101
+ - **`fallbackRedirectUrl`** (string, padrão: `"/"`) - URL para redirecionar após cadastro bem-sucedido
102
+ - **`initialValues`** (object, opcional) - Valores iniciais para preencher os campos do formulário
103
+ - `first_name` (string) - Primeiro nome
104
+ - `last_name` (string) - Sobrenome
105
+ - `email_address` (string) - Email
106
+ - `password` (string) - Senha
107
+ - `confirm_password` (string) - Confirmação de senha
108
+ - **`signInUrl`** (string, opcional) - URL para redirecionar quando o usuário clicar em "Faça login". Se não fornecido, emite evento `sign-in`
109
+
110
+ **Eventos:**
111
+ - **`completed`** - Emitido quando o cadastro é concluído com sucesso
112
+ - **`sign-in`** - Emitido quando o usuário clica em "Faça login" e não há `signInUrl` definido
113
+
114
+ **Exemplos:**
115
+ ```vue
116
+ <template>
117
+ <SignUp
118
+ fallbackRedirectUrl="/dashboard"
119
+ :initialValues="{ first_name: 'João', email_address: 'joao@exemplo.com' }"
120
+ signInUrl="/login"
121
+ />
122
+ </template>
123
+
124
+ <script setup>
125
+ import { SignUp } from '@autenticar-me/vue'
126
+ </script>
127
+ ```
128
+
129
+ ```vue
130
+ <template>
131
+ <SignUp
132
+ @completed="handleSignUpCompleted"
133
+ @sign-in="showSignInModal"
134
+ />
135
+ </template>
136
+
137
+ <script setup>
138
+ import { SignUp } from '@autenticar-me/vue'
139
+
140
+ const handleSignUpCompleted = () => {
141
+ console.log('Cadastro realizado com sucesso!')
142
+ }
143
+
144
+ const showSignInModal = () => {
145
+ console.log('Usuário quer fazer login')
146
+ }
147
+ </script>
148
+ ```
149
+
150
+ ### Botões de Autenticação
151
+
152
+ #### SignInButton
153
+
154
+ Botão que abre um modal de login quando clicado.
155
+
156
+ **Props:**
157
+ - **`fallbackRedirectUrl`** (string, padrão: `"/"`) - URL para redirecionar após login bem-sucedido no modal
158
+ - **`signUpUrl`** (string, opcional) - URL para redirecionar quando o usuário clicar em "Cadastre aqui" dentro do modal. Se não fornecido, alterna para o formulário de cadastro dentro do modal
159
+
160
+ **Exemplo:**
161
+ ```vue
162
+ <template>
163
+ <SignInButton
164
+ fallbackRedirectUrl="/dashboard"
165
+ signUpUrl="/register"
166
+ />
167
+ </template>
168
+
169
+ <script setup>
170
+ import { SignInButton } from '@autenticar-me/vue'
171
+ </script>
172
+ ```
173
+
174
+ #### SignUpButton
175
+
176
+ Botão que abre um modal de cadastro quando clicado. Só é exibido se o registro estiver habilitado nas configurações.
177
+
178
+ **Props:**
179
+ - **`fallbackRedirectUrl`** (string, padrão: `"/"`) - URL para redirecionar após cadastro bem-sucedido no modal
180
+ - **`signInUrl`** (string, opcional) - URL para redirecionar quando o usuário clicar em "Faça login" dentro do modal. Se não fornecido, alterna para o formulário de login dentro do modal
181
+
182
+ **Exemplo:**
183
+ ```vue
184
+ <template>
185
+ <SignUpButton
186
+ fallbackRedirectUrl="/dashboard"
187
+ signInUrl="/login"
188
+ />
189
+ </template>
190
+
191
+ <script setup>
192
+ import { SignUpButton } from '@autenticar-me/vue'
193
+ </script>
194
+ ```
195
+
196
+ #### SignOutButton
197
+
198
+ Botão que realiza logout do usuário quando clicado. Só é exibido quando há um usuário autenticado.
199
+
200
+ **Exemplo:**
201
+ ```vue
202
+ <template>
203
+ <SignOutButton />
204
+ </template>
205
+
206
+ <script setup>
207
+ import { SignOutButton } from '@autenticar-me/vue'
208
+ </script>
209
+ ```
210
+
211
+ ### Componentes de Perfil
212
+
213
+ #### UserProfile
214
+
215
+ Componente de perfil do usuário com dropdown menu e modal de gerenciamento. Permite visualizar e editar informações pessoais, gerenciar emails, redefinir senha e gerenciar sessões ativas.
216
+
217
+ **Exemplo:**
218
+ ```vue
219
+ <template>
220
+ <UserProfile />
221
+ </template>
222
+
223
+ <script setup>
224
+ import { UserProfile } from '@autenticar-me/vue'
225
+ </script>
226
+ ```
227
+
228
+ ### Componentes de Layout
229
+
230
+ #### SignedIn
231
+
232
+ Componente wrapper que só renderiza seu conteúdo quando o usuário está autenticado.
233
+
234
+ **Exemplo:**
235
+ ```vue
236
+ <template>
237
+ <SignedIn>
238
+ <Dashboard />
239
+ </SignedIn>
240
+ </template>
241
+
242
+ <script setup>
243
+ import { SignedIn } from '@autenticar-me/vue'
244
+ import Dashboard from './Dashboard.vue'
245
+ </script>
246
+ ```
247
+
248
+ #### SignedOut
249
+
250
+ Componente wrapper que só renderiza seu conteúdo quando o usuário não está autenticado e o estado de autenticação foi carregado.
251
+
252
+ **Exemplo:**
253
+ ```vue
254
+ <template>
255
+ <SignedOut>
256
+ <LandingPage />
257
+ </SignedOut>
258
+ </template>
259
+
260
+ <script setup>
261
+ import { SignedOut } from '@autenticar-me/vue'
262
+ import LandingPage from './LandingPage.vue'
263
+ </script>
264
+ ```
265
+
266
+ ### Outros Componentes
267
+
268
+ #### AuthSwitcher
269
+
270
+ Componente que alterna automaticamente entre os componentes de autenticação e perfil do usuário. Exibe UserProfile quando há um usuário autenticado, ou os botões SignInButton e SignUpButton quando não há.
271
+
272
+ **Exemplo:**
273
+ ```vue
274
+ <template>
275
+ <AuthSwitcher />
276
+ </template>
277
+
278
+ <script setup>
279
+ import { AuthSwitcher } from '@autenticar-me/vue'
280
+ </script>
281
+ ```
282
+
283
+ ## Casos de Uso
284
+
285
+ ### Usando Botões com Modal
286
+
287
+ Os botões abrem modais com os formulários e permitem alternância automática entre login/cadastro dentro do modal:
288
+
289
+ ```vue
290
+ <template>
291
+ <SignInButton fallbackRedirectUrl="/dashboard" />
292
+ <SignUpButton fallbackRedirectUrl="/dashboard" />
293
+ </template>
294
+
295
+ <script setup>
296
+ import { SignInButton, SignUpButton } from '@autenticar-me/vue'
297
+ </script>
298
+ ```
299
+
300
+ **Comportamento:**
301
+ - Ao clicar em "Cadastre aqui" no modal de login, o conteúdo muda para o formulário de cadastro
302
+ - Ao clicar em "Faça login" no modal de cadastro, o conteúdo muda para o formulário de login
303
+ - Após autenticação bem-sucedida, o modal fecha e redireciona para `fallbackRedirectUrl`
304
+
305
+ ### Usando Formulários em Páginas Dedicadas
306
+
307
+ ```vue
308
+ <template>
309
+ <div class="login-page">
310
+ <SignIn
311
+ fallbackRedirectUrl="/dashboard"
312
+ signUpUrl="/cadastro"
313
+ />
314
+ </div>
315
+ </template>
316
+
317
+ <script setup>
318
+ import { SignIn } from '@autenticar-me/vue'
319
+ </script>
320
+ ```
321
+
322
+ ### Controle de Acesso por Autenticação
323
+
324
+ ```vue
325
+ <template>
326
+ <div>
327
+ <SignedOut>
328
+ <h1>Bem-vindo! Faça login para continuar</h1>
329
+ <SignInButton />
330
+ </SignedOut>
331
+
332
+ <SignedIn>
333
+ <h1>Área Restrita</h1>
334
+ <UserProfile />
335
+ </SignedIn>
336
+ </div>
337
+ </template>
338
+
339
+ <script setup>
340
+ import { SignedIn, SignedOut, SignInButton, UserProfile } from '@autenticar-me/vue'
341
+ </script>
342
+ ```
343
+
344
+ ## Tipos TypeScript
345
+
346
+ O pacote exporta tipos para TypeScript:
347
+
348
+ - **`User`** - Tipo do usuário
349
+ - **`Session`** - Tipo da sessão
350
+ - **`Configurations`** - Configurações da plataforma
351
+ - **`UserAttribute`** - Atributos do usuário
352
+ - **`PluginOptions`** - Opções do plugin
353
+
354
+ ## Utilidades
355
+
356
+ - **`getDeviceToken()`** - Obtém token do dispositivo para autenticação
357
+
358
+ ## Licença
359
+
360
+ MIT