@autenticar-me/vue 0.13.0 → 0.14.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 +374 -360
- package/dist/components/Buttons/SignOutButton.vue.d.ts +5 -1
- package/dist/components/Buttons/SignOutButton.vue.d.ts.map +1 -1
- package/dist/components/UserProfile.vue.d.ts +5 -1
- package/dist/components/UserProfile.vue.d.ts.map +1 -1
- package/dist/index.cjs +33 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +33 -24
- package/dist/index.js.map +1 -1
- package/package.json +45 -45
package/README.md
CHANGED
|
@@ -1,360 +1,374 @@
|
|
|
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
|
-
**
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
<
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
<
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
<
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
##
|
|
359
|
-
|
|
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
|
+
**Eventos:**
|
|
201
|
+
- `logout`: Emitido após o logout ser concluído com sucesso
|
|
202
|
+
|
|
203
|
+
**Exemplo:**
|
|
204
|
+
```vue
|
|
205
|
+
<template>
|
|
206
|
+
<SignOutButton @logout="handleLogout" />
|
|
207
|
+
</template>
|
|
208
|
+
|
|
209
|
+
<script setup>
|
|
210
|
+
import { SignOutButton } from '@autenticar-me/vue'
|
|
211
|
+
|
|
212
|
+
const handleLogout = () => {
|
|
213
|
+
console.log('Usuário deslogado com sucesso')
|
|
214
|
+
}
|
|
215
|
+
</script>
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Componentes de Perfil
|
|
219
|
+
|
|
220
|
+
#### UserProfile
|
|
221
|
+
|
|
222
|
+
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.
|
|
223
|
+
|
|
224
|
+
**Eventos:**
|
|
225
|
+
- `logout`: Emitido após o logout ser concluído com sucesso
|
|
226
|
+
|
|
227
|
+
**Exemplo:**
|
|
228
|
+
```vue
|
|
229
|
+
<template>
|
|
230
|
+
<UserProfile @logout="handleLogout" />
|
|
231
|
+
</template>
|
|
232
|
+
|
|
233
|
+
<script setup>
|
|
234
|
+
import { UserProfile } from '@autenticar-me/vue'
|
|
235
|
+
|
|
236
|
+
const handleLogout = () => {
|
|
237
|
+
console.log('Usuário deslogado com sucesso')
|
|
238
|
+
}
|
|
239
|
+
</script>
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Componentes de Layout
|
|
243
|
+
|
|
244
|
+
#### SignedIn
|
|
245
|
+
|
|
246
|
+
Componente wrapper que só renderiza seu conteúdo quando o usuário está autenticado.
|
|
247
|
+
|
|
248
|
+
**Exemplo:**
|
|
249
|
+
```vue
|
|
250
|
+
<template>
|
|
251
|
+
<SignedIn>
|
|
252
|
+
<Dashboard />
|
|
253
|
+
</SignedIn>
|
|
254
|
+
</template>
|
|
255
|
+
|
|
256
|
+
<script setup>
|
|
257
|
+
import { SignedIn } from '@autenticar-me/vue'
|
|
258
|
+
import Dashboard from './Dashboard.vue'
|
|
259
|
+
</script>
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
#### SignedOut
|
|
263
|
+
|
|
264
|
+
Componente wrapper que só renderiza seu conteúdo quando o usuário não está autenticado e o estado de autenticação foi carregado.
|
|
265
|
+
|
|
266
|
+
**Exemplo:**
|
|
267
|
+
```vue
|
|
268
|
+
<template>
|
|
269
|
+
<SignedOut>
|
|
270
|
+
<LandingPage />
|
|
271
|
+
</SignedOut>
|
|
272
|
+
</template>
|
|
273
|
+
|
|
274
|
+
<script setup>
|
|
275
|
+
import { SignedOut } from '@autenticar-me/vue'
|
|
276
|
+
import LandingPage from './LandingPage.vue'
|
|
277
|
+
</script>
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Outros Componentes
|
|
281
|
+
|
|
282
|
+
#### AuthSwitcher
|
|
283
|
+
|
|
284
|
+
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á.
|
|
285
|
+
|
|
286
|
+
**Exemplo:**
|
|
287
|
+
```vue
|
|
288
|
+
<template>
|
|
289
|
+
<AuthSwitcher />
|
|
290
|
+
</template>
|
|
291
|
+
|
|
292
|
+
<script setup>
|
|
293
|
+
import { AuthSwitcher } from '@autenticar-me/vue'
|
|
294
|
+
</script>
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
## Casos de Uso
|
|
298
|
+
|
|
299
|
+
### Usando Botões com Modal
|
|
300
|
+
|
|
301
|
+
Os botões abrem modais com os formulários e permitem alternância automática entre login/cadastro dentro do modal:
|
|
302
|
+
|
|
303
|
+
```vue
|
|
304
|
+
<template>
|
|
305
|
+
<SignInButton fallbackRedirectUrl="/dashboard" />
|
|
306
|
+
<SignUpButton fallbackRedirectUrl="/dashboard" />
|
|
307
|
+
</template>
|
|
308
|
+
|
|
309
|
+
<script setup>
|
|
310
|
+
import { SignInButton, SignUpButton } from '@autenticar-me/vue'
|
|
311
|
+
</script>
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
**Comportamento:**
|
|
315
|
+
- Ao clicar em "Cadastre aqui" no modal de login, o conteúdo muda para o formulário de cadastro
|
|
316
|
+
- Ao clicar em "Faça login" no modal de cadastro, o conteúdo muda para o formulário de login
|
|
317
|
+
- Após autenticação bem-sucedida, o modal fecha e redireciona para `fallbackRedirectUrl`
|
|
318
|
+
|
|
319
|
+
### Usando Formulários em Páginas Dedicadas
|
|
320
|
+
|
|
321
|
+
```vue
|
|
322
|
+
<template>
|
|
323
|
+
<div class="login-page">
|
|
324
|
+
<SignIn
|
|
325
|
+
fallbackRedirectUrl="/dashboard"
|
|
326
|
+
signUpUrl="/cadastro"
|
|
327
|
+
/>
|
|
328
|
+
</div>
|
|
329
|
+
</template>
|
|
330
|
+
|
|
331
|
+
<script setup>
|
|
332
|
+
import { SignIn } from '@autenticar-me/vue'
|
|
333
|
+
</script>
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### Controle de Acesso por Autenticação
|
|
337
|
+
|
|
338
|
+
```vue
|
|
339
|
+
<template>
|
|
340
|
+
<div>
|
|
341
|
+
<SignedOut>
|
|
342
|
+
<h1>Bem-vindo! Faça login para continuar</h1>
|
|
343
|
+
<SignInButton />
|
|
344
|
+
</SignedOut>
|
|
345
|
+
|
|
346
|
+
<SignedIn>
|
|
347
|
+
<h1>Área Restrita</h1>
|
|
348
|
+
<UserProfile />
|
|
349
|
+
</SignedIn>
|
|
350
|
+
</div>
|
|
351
|
+
</template>
|
|
352
|
+
|
|
353
|
+
<script setup>
|
|
354
|
+
import { SignedIn, SignedOut, SignInButton, UserProfile } from '@autenticar-me/vue'
|
|
355
|
+
</script>
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
## Tipos TypeScript
|
|
359
|
+
|
|
360
|
+
O pacote exporta tipos para TypeScript:
|
|
361
|
+
|
|
362
|
+
- **`User`** - Tipo do usuário
|
|
363
|
+
- **`Session`** - Tipo da sessão
|
|
364
|
+
- **`Configurations`** - Configurações da plataforma
|
|
365
|
+
- **`UserAttribute`** - Atributos do usuário
|
|
366
|
+
- **`PluginOptions`** - Opções do plugin
|
|
367
|
+
|
|
368
|
+
## Utilidades
|
|
369
|
+
|
|
370
|
+
- **`getDeviceToken()`** - Obtém token do dispositivo para autenticação
|
|
371
|
+
|
|
372
|
+
## Licença
|
|
373
|
+
|
|
374
|
+
MIT
|