@elogroup-sereduc/ser-front-core-client 1.1.1 → 2.0.1

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.
Files changed (47) hide show
  1. package/OAUTH_MIGRATION.md +86 -0
  2. package/README.md +143 -388
  3. package/dist/{axios.d.ts → api-client.d.ts} +3 -3
  4. package/dist/api-client.d.ts.map +1 -0
  5. package/dist/{axios.js → api-client.js} +11 -11
  6. package/dist/api-client.js.map +1 -0
  7. package/dist/auth/bootstrap.d.ts +14 -0
  8. package/dist/auth/bootstrap.d.ts.map +1 -0
  9. package/dist/auth/bootstrap.js +28 -0
  10. package/dist/auth/bootstrap.js.map +1 -0
  11. package/dist/auth/http-client.d.ts +3 -0
  12. package/dist/auth/http-client.d.ts.map +1 -0
  13. package/dist/auth/http-client.js +31 -0
  14. package/dist/auth/http-client.js.map +1 -0
  15. package/dist/auth/index.d.ts +19 -0
  16. package/dist/auth/index.d.ts.map +1 -0
  17. package/dist/auth/index.js +22 -0
  18. package/dist/auth/index.js.map +1 -0
  19. package/dist/auth/route-guards.d.ts +14 -0
  20. package/dist/auth/route-guards.d.ts.map +1 -0
  21. package/dist/auth/route-guards.js +59 -0
  22. package/dist/auth/route-guards.js.map +1 -0
  23. package/dist/auth/ser-oauth-js.d.ts +54 -0
  24. package/dist/auth/ser-oauth-js.d.ts.map +1 -0
  25. package/dist/auth/ser-oauth-js.js +405 -0
  26. package/dist/auth/ser-oauth-js.js.map +1 -0
  27. package/dist/auth/store.d.ts +14 -0
  28. package/dist/auth/store.d.ts.map +1 -0
  29. package/dist/auth/store.js +20 -0
  30. package/dist/auth/store.js.map +1 -0
  31. package/dist/index.d.ts +3 -6
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -4
  34. package/dist/index.js.map +1 -1
  35. package/dist/keycloak.d.ts +12 -2
  36. package/dist/keycloak.d.ts.map +1 -1
  37. package/dist/keycloak.js +168 -125
  38. package/dist/keycloak.js.map +1 -1
  39. package/dist/utils/auth.d.ts +8 -0
  40. package/dist/utils/auth.d.ts.map +1 -1
  41. package/dist/utils/auth.js +13 -2
  42. package/dist/utils/auth.js.map +1 -1
  43. package/package.json +8 -6
  44. package/public/silent-callback.html +19 -0
  45. package/public/silent-check-sso.html +30 -0
  46. package/dist/axios.d.ts.map +0 -1
  47. package/dist/axios.js.map +0 -1
@@ -0,0 +1,86 @@
1
+ # Migração para Ser OAuth System
2
+
3
+ Esta biblioteca agora inclui um sistema completo de autenticação OAuth/OIDC (`ser-oauth-js`) além do sistema Keycloak original.
4
+
5
+ ## Nova Implementação: Ser OAuth
6
+
7
+ ### Características
8
+
9
+ - ✅ **Silent SSO**: Autenticação invisível via iframe
10
+ - ✅ **PKCE S256**: Segurança avançada para SPAs
11
+ - ✅ **Token Refresh**: Renovação automática de tokens
12
+ - ✅ **API Client**: Cliente HTTP com interceptadores automáticos
13
+ - ✅ **Route Guards**: Proteção de rotas para TanStack Router
14
+ - ✅ **Zustand Store**: Gerenciamento de estado reativo
15
+ - ✅ **IDP Hint**: Redirecionamento automático para provedores específicos
16
+
17
+ ### Setup Básico
18
+
19
+ ```typescript
20
+ import {
21
+ createKeycloakAuthFromUrl,
22
+ initAuth,
23
+ useAuthStore,
24
+ } from "@elogroup-sereduc/ser-front-core-client";
25
+
26
+ const kc = createKeycloakAuthFromUrl(
27
+ "https://sso.sereduc.com/realms/colaboradores/protocol/openid-connect/auth",
28
+ "seu-client-id",
29
+ "ser-oidc", // IDP hint opcional
30
+ );
31
+
32
+ const authenticated = await initAuth(kc, "/seu-base-path");
33
+ ```
34
+
35
+ ### Migração de Projetos
36
+
37
+ 1. **Instalar nova versão** da biblioteca
38
+ 2. **Copiar `silent-check-sso.html`** para pasta public
39
+ 3. **Substituir inicialização** do auth
40
+ 4. **Atualizar imports** dos hooks/stores
41
+ 5. **Testar Silent SSO** e fluxo completo
42
+
43
+ ### Exemplo de Context
44
+
45
+ ```typescript
46
+ import { useAuthStore } from "@elogroup-sereduc/ser-front-core-client";
47
+
48
+ export function useAuth() {
49
+ const authState = useAuthStore();
50
+
51
+ return {
52
+ authenticated: authState.authenticated,
53
+ token: authState.accessToken,
54
+ login: () => kc.login(),
55
+ logout: () => kc.logout(),
56
+ };
57
+ }
58
+ ```
59
+
60
+ ### API Client
61
+
62
+ ```typescript
63
+ import { createApiClient } from "@elogroup-sereduc/ser-front-core-client";
64
+
65
+ const api = createApiClient(kc, "https://api.sereduc.com");
66
+
67
+ // O cliente automaticamente:
68
+ // - Adiciona Bearer token
69
+ // - Renova em caso de 401
70
+ // - Retenta requisição
71
+ ```
72
+
73
+ ### Route Guards
74
+
75
+ ```typescript
76
+ import { createAuthGuard } from "@elogroup-sereduc/ser-front-core-client";
77
+
78
+ const requireAuth = createAuthGuard(kc);
79
+
80
+ export const Route = createFileRoute("/protected")({
81
+ beforeLoad: requireAuth,
82
+ component: ProtectedComponent,
83
+ });
84
+ ```
85
+
86
+ Ver documentação completa em `src/auth/README.md`.