@authticon/client 0.0.0-beta4 → 0.0.0-beta41
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 +375 -0
- package/dist/CookieStorageAdapter.d.ts +15 -0
- package/dist/CookieStorageAdapter.d.ts.map +1 -0
- package/dist/CookieStorageAdapter.js +60 -0
- package/dist/CookieStorageAdapter.js.map +1 -0
- package/dist/InMemoryCacheAdapter.d.ts +3 -0
- package/dist/InMemoryCacheAdapter.d.ts.map +1 -0
- package/dist/InMemoryCacheAdapter.js +13 -0
- package/dist/InMemoryCacheAdapter.js.map +1 -0
- package/dist/TokenStorage.d.ts +14 -10
- package/dist/TokenStorage.d.ts.map +1 -1
- package/dist/TokenStorage.js +92 -59
- package/dist/TokenStorage.js.map +1 -1
- package/dist/TokenVerifier.d.ts +6 -11
- package/dist/TokenVerifier.d.ts.map +1 -1
- package/dist/TokenVerifier.js +48 -34
- package/dist/TokenVerifier.js.map +1 -1
- package/dist/admin.d.ts +2 -0
- package/dist/admin.d.ts.map +1 -0
- package/dist/admin.js +2 -0
- package/dist/admin.js.map +1 -0
- package/dist/adminClient.d.ts +104 -0
- package/dist/adminClient.d.ts.map +1 -0
- package/dist/adminClient.js +108 -0
- package/dist/adminClient.js.map +1 -0
- package/dist/apiClient.d.ts +8 -0
- package/dist/apiClient.d.ts.map +1 -0
- package/dist/apiClient.js +18 -0
- package/dist/apiClient.js.map +1 -0
- package/dist/authClient.d.ts +42 -0
- package/dist/authClient.d.ts.map +1 -0
- package/dist/authClient.js +75 -0
- package/dist/authClient.js.map +1 -0
- package/dist/authticon.d.ts +131 -0
- package/dist/authticon.d.ts.map +1 -0
- package/dist/authticon.js +24 -0
- package/dist/authticon.js.map +1 -0
- package/dist/browser.d.ts +134 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +7 -0
- package/dist/browser.js.map +1 -0
- package/dist/clients/admin.d.ts +106 -0
- package/dist/clients/admin.d.ts.map +1 -0
- package/dist/clients/admin.js +126 -0
- package/dist/clients/admin.js.map +1 -0
- package/dist/clients/auth.d.ts +42 -0
- package/dist/clients/auth.d.ts.map +1 -0
- package/dist/clients/auth.js +74 -0
- package/dist/clients/auth.js.map +1 -0
- package/dist/clients/base.d.ts +8 -0
- package/dist/clients/base.d.ts.map +1 -0
- package/dist/clients/base.js +18 -0
- package/dist/clients/base.js.map +1 -0
- package/dist/clients/generated/client/client.gen.d.ts +3 -0
- package/dist/clients/generated/client/client.gen.d.ts.map +1 -0
- package/dist/clients/generated/client/client.gen.js +236 -0
- package/dist/clients/generated/client/client.gen.js.map +1 -0
- package/dist/clients/generated/client/index.d.ts +9 -0
- package/dist/clients/generated/client/index.d.ts.map +1 -0
- package/dist/clients/generated/client/index.js +7 -0
- package/dist/clients/generated/client/index.js.map +1 -0
- package/dist/clients/generated/client/types.gen.d.ts +118 -0
- package/dist/clients/generated/client/types.gen.d.ts.map +1 -0
- package/dist/clients/generated/client/types.gen.js +3 -0
- package/dist/clients/generated/client/types.gen.js.map +1 -0
- package/dist/clients/generated/client/utils.gen.d.ts +34 -0
- package/dist/clients/generated/client/utils.gen.d.ts.map +1 -0
- package/dist/clients/generated/client/utils.gen.js +229 -0
- package/dist/clients/generated/client/utils.gen.js.map +1 -0
- package/dist/clients/generated/client.gen.d.ts +13 -0
- package/dist/clients/generated/client.gen.d.ts.map +1 -0
- package/dist/clients/generated/client.gen.js +4 -0
- package/dist/clients/generated/client.gen.js.map +1 -0
- package/dist/clients/generated/core/auth.gen.d.ts +19 -0
- package/dist/clients/generated/core/auth.gen.d.ts.map +1 -0
- package/dist/clients/generated/core/auth.gen.js +15 -0
- package/dist/clients/generated/core/auth.gen.js.map +1 -0
- package/dist/clients/generated/core/bodySerializer.gen.d.ts +26 -0
- package/dist/clients/generated/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/clients/generated/core/bodySerializer.gen.js +58 -0
- package/dist/clients/generated/core/bodySerializer.gen.js.map +1 -0
- package/dist/clients/generated/core/params.gen.d.ts +44 -0
- package/dist/clients/generated/core/params.gen.d.ts.map +1 -0
- package/dist/clients/generated/core/params.gen.js +101 -0
- package/dist/clients/generated/core/params.gen.js.map +1 -0
- package/dist/clients/generated/core/pathSerializer.gen.d.ts +34 -0
- package/dist/clients/generated/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/clients/generated/core/pathSerializer.gen.js +107 -0
- package/dist/clients/generated/core/pathSerializer.gen.js.map +1 -0
- package/dist/clients/generated/core/queryKeySerializer.gen.d.ts +19 -0
- package/dist/clients/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/clients/generated/core/queryKeySerializer.gen.js +93 -0
- package/dist/clients/generated/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/clients/generated/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/clients/generated/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/clients/generated/core/serverSentEvents.gen.js +134 -0
- package/dist/clients/generated/core/serverSentEvents.gen.js.map +1 -0
- package/dist/clients/generated/core/types.gen.d.ts +79 -0
- package/dist/clients/generated/core/types.gen.d.ts.map +1 -0
- package/dist/clients/generated/core/types.gen.js +3 -0
- package/dist/clients/generated/core/types.gen.js.map +1 -0
- package/dist/clients/generated/core/utils.gen.d.ts +20 -0
- package/dist/clients/generated/core/utils.gen.d.ts.map +1 -0
- package/dist/clients/generated/core/utils.gen.js +88 -0
- package/dist/clients/generated/core/utils.gen.js.map +1 -0
- package/dist/clients/generated/index.d.ts +3 -0
- package/dist/clients/generated/index.d.ts.map +1 -0
- package/dist/clients/generated/index.js +3 -0
- package/dist/clients/generated/index.js.map +1 -0
- package/dist/clients/generated/sdk.gen.d.ts +168 -0
- package/dist/clients/generated/sdk.gen.d.ts.map +1 -0
- package/dist/clients/generated/sdk.gen.js +427 -0
- package/dist/clients/generated/sdk.gen.js.map +1 -0
- package/dist/clients/generated/types.gen.d.ts +1261 -0
- package/dist/clients/generated/types.gen.d.ts.map +1 -0
- package/dist/clients/generated/types.gen.js +3 -0
- package/dist/clients/generated/types.gen.js.map +1 -0
- package/dist/clients/user.d.ts +67 -0
- package/dist/clients/user.d.ts.map +1 -0
- package/dist/clients/user.js +72 -0
- package/dist/clients/user.js.map +1 -0
- package/dist/cookies/browser.d.ts +3 -0
- package/dist/cookies/browser.d.ts.map +1 -0
- package/dist/cookies/browser.js +31 -0
- package/dist/cookies/browser.js.map +1 -0
- package/dist/cookies/node.d.ts +8 -0
- package/dist/cookies/node.d.ts.map +1 -0
- package/dist/cookies/node.js +49 -0
- package/dist/cookies/node.js.map +1 -0
- package/dist/createSessionUser.d.ts +3 -0
- package/dist/createSessionUser.d.ts.map +1 -0
- package/dist/createSessionUser.js +15 -0
- package/dist/createSessionUser.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +40 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/client/client.gen.d.ts.map +1 -1
- package/dist/generated/client/client.gen.js +151 -50
- package/dist/generated/client/client.gen.js.map +1 -1
- package/dist/generated/client/index.d.ts +2 -2
- package/dist/generated/client/index.d.ts.map +1 -1
- package/dist/generated/client/index.js +1 -1
- package/dist/generated/client/index.js.map +1 -1
- package/dist/generated/client/types.gen.d.ts +53 -24
- package/dist/generated/client/types.gen.d.ts.map +1 -1
- package/dist/generated/client/utils.gen.d.ts +25 -6
- package/dist/generated/client/utils.gen.d.ts.map +1 -1
- package/dist/generated/client/utils.gen.js +117 -57
- package/dist/generated/client/utils.gen.js.map +1 -1
- package/dist/generated/client.gen.js +1 -1
- package/dist/generated/index.d.ts +2 -2
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/generated/index.js +1 -1
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/sdk.gen.d.ts +153 -52
- package/dist/generated/sdk.gen.d.ts.map +1 -1
- package/dist/generated/sdk.gen.js +234 -209
- package/dist/generated/sdk.gen.js.map +1 -1
- package/dist/generated/types.gen.d.ts +557 -971
- package/dist/generated/types.gen.d.ts.map +1 -1
- package/dist/index.d.ts +2 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -6
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +171 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +46 -0
- package/dist/node.js.map +1 -0
- package/dist/session.d.ts +100 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +203 -0
- package/dist/session.js.map +1 -0
- package/dist/sessionClient.d.ts +53 -0
- package/dist/sessionClient.d.ts.map +1 -0
- package/dist/sessionClient.js +267 -0
- package/dist/sessionClient.js.map +1 -0
- package/dist/tokens.d.ts +27 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +212 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types.d.ts +47 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/userClient.d.ts +41 -0
- package/dist/userClient.d.ts.map +1 -0
- package/dist/userClient.js +64 -0
- package/dist/userClient.js.map +1 -0
- package/package.json +24 -7
- package/dist/Acccount.d.ts +0 -9
- package/dist/Acccount.d.ts.map +0 -1
- package/dist/Acccount.js +0 -22
- package/dist/Acccount.js.map +0 -1
- package/dist/Auth.d.ts +0 -19
- package/dist/Auth.d.ts.map +0 -1
- package/dist/Auth.js +0 -24
- package/dist/Auth.js.map +0 -1
- package/dist/Authticon.d.ts +0 -27
- package/dist/Authticon.d.ts.map +0 -1
- package/dist/Authticon.js +0 -41
- package/dist/Authticon.js.map +0 -1
- package/dist/BrowserCookieAdapter.d.ts +0 -13
- package/dist/BrowserCookieAdapter.d.ts.map +0 -1
- package/dist/BrowserCookieAdapter.js +0 -18
- package/dist/BrowserCookieAdapter.js.map +0 -1
- package/dist/BrowserCookieAdapter.test.d.ts +0 -2
- package/dist/BrowserCookieAdapter.test.d.ts.map +0 -1
- package/dist/BrowserCookieAdapter.test.js +0 -145
- package/dist/BrowserCookieAdapter.test.js.map +0 -1
- package/dist/RemixCookieAdapter.d.ts +0 -12
- package/dist/RemixCookieAdapter.d.ts.map +0 -1
- package/dist/RemixCookieAdapter.js +0 -25
- package/dist/RemixCookieAdapter.js.map +0 -1
- package/dist/RemixCookieAdapter.test.d.ts +0 -2
- package/dist/RemixCookieAdapter.test.d.ts.map +0 -1
- package/dist/RemixCookieAdapter.test.js +0 -136
- package/dist/RemixCookieAdapter.test.js.map +0 -1
- package/dist/TokenManager.d.ts +0 -22
- package/dist/TokenManager.d.ts.map +0 -1
- package/dist/TokenManager.js +0 -45
- package/dist/TokenManager.js.map +0 -1
- package/dist/TokenManager.test.d.ts +0 -2
- package/dist/TokenManager.test.d.ts.map +0 -1
- package/dist/TokenManager.test.js +0 -118
- package/dist/TokenManager.test.js.map +0 -1
- package/dist/TokenStorage.test.d.ts +0 -2
- package/dist/TokenStorage.test.d.ts.map +0 -1
- package/dist/TokenStorage.test.js +0 -179
- package/dist/TokenStorage.test.js.map +0 -1
- package/dist/TokenVerifier.test.d.ts +0 -2
- package/dist/TokenVerifier.test.d.ts.map +0 -1
- package/dist/TokenVerifier.test.js +0 -117
- package/dist/TokenVerifier.test.js.map +0 -1
- package/dist/TwoFa.d.ts +0 -22
- package/dist/TwoFa.d.ts.map +0 -1
- package/dist/TwoFa.js +0 -47
- package/dist/TwoFa.js.map +0 -1
- package/dist/User.d.ts +0 -25
- package/dist/User.d.ts.map +0 -1
- package/dist/User.js +0 -27
- package/dist/User.js.map +0 -1
- package/dist/Users.d.ts +0 -57
- package/dist/Users.d.ts.map +0 -1
- package/dist/Users.js +0 -54
- package/dist/Users.js.map +0 -1
- package/dist/cookie-utils.d.ts +0 -5
- package/dist/cookie-utils.d.ts.map +0 -1
- package/dist/cookie-utils.js +0 -33
- package/dist/cookie-utils.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
# @authticon/client
|
|
2
|
+
|
|
3
|
+
Oficjalny klient JavaScript/TypeScript dla [Authticon](https://authticon.com) — usługi uwierzytelniania. Biblioteka wspiera zarówno środowisko **Node.js** (SSR, API routes), jak i **przeglądarkę** (SPA, client-side).
|
|
4
|
+
|
|
5
|
+
## Instalacja
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @authticon/client
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**Wymagania:** Node.js >= 18
|
|
12
|
+
|
|
13
|
+
## Dwa entry pointy
|
|
14
|
+
|
|
15
|
+
Biblioteka dostarcza dwa osobne moduły z odrębnymi implementacjami cookie i sesji:
|
|
16
|
+
|
|
17
|
+
| Import | Środowisko | Cookie adapter |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| `@authticon/client` lub `@authticon/client/node` | Node.js / SSR | Parsuje cookies z obiektu `Request`, zwraca `CookieStorageAdapter` z metodami `applyToResponse()`, `stringifySetCookies()` |
|
|
20
|
+
| `@authticon/client/browser` | Przeglądarka / SPA | Używa `document.cookie` |
|
|
21
|
+
|
|
22
|
+
## Szybki start
|
|
23
|
+
|
|
24
|
+
### Node.js (np. Next.js, Express, Hono)
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
import { createAuthticon } from "@authticon/client/node";
|
|
28
|
+
|
|
29
|
+
const authticon = createAuthticon({
|
|
30
|
+
projectId: "your-project-id",
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// W handlerze HTTP:
|
|
34
|
+
async function handler(request: Request) {
|
|
35
|
+
const { getUser, login, logout, cookies } = await authticon.session({
|
|
36
|
+
request,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const user = getUser(); // SessionUser | null
|
|
40
|
+
|
|
41
|
+
// cookies.applyToResponse(response) — ustawia Set-Cookie na odpowiedzi
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Przeglądarka
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
import { createAuthticon } from "@authticon/client/browser";
|
|
49
|
+
|
|
50
|
+
const authticon = createAuthticon({
|
|
51
|
+
projectId: "your-project-id",
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const session = await authticon.session({});
|
|
55
|
+
|
|
56
|
+
const user = session.getUser();
|
|
57
|
+
await session.login({ email: "user@example.com", password: "secret" });
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Konfiguracja
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
type AuthticonOptions = {
|
|
64
|
+
projectId: string; // ID projektu w Authticon (wymagane)
|
|
65
|
+
baseUrl?: string; // URL API (domyślnie: "https://authticon.com")
|
|
66
|
+
jwksUrl?: string; // URL do JWKS (domyślnie: {baseUrl}/.well-known/jwks.json)
|
|
67
|
+
jwksCacheTtlMs?: number; // TTL cache kluczy JWKS (domyślnie: 1h)
|
|
68
|
+
cache?: CacheAdapter; // Zewnętrzny adapter cache (domyślnie: in-memory)
|
|
69
|
+
logger?: Logger; // Instancja pino logger
|
|
70
|
+
};
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Session (API stanowe)
|
|
74
|
+
|
|
75
|
+
`session()` to główny sposób interakcji z biblioteką. Tworzy **stanowy obiekt sesji**, który:
|
|
76
|
+
|
|
77
|
+
1. Przy tworzeniu automatycznie odczytuje tokeny z cookies
|
|
78
|
+
2. Weryfikuje access token za pomocą JWKS
|
|
79
|
+
3. Jeśli token wygasł — automatycznie odświeża go za pomocą refresh tokena
|
|
80
|
+
4. Cache'uje obiekt `SessionUser` w pamięci na czas życia sesji
|
|
81
|
+
5. Operacje takie jak `login()`, `logout()`, `createGuest()` automatycznie aktualizują wewnętrzny stan sesji i zapisują nowe tokeny w cookies
|
|
82
|
+
|
|
83
|
+
### Tworzenie sesji
|
|
84
|
+
|
|
85
|
+
#### Node.js — z obiektu `Request`
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
const session = await authticon.session({ request });
|
|
89
|
+
// session.cookies — CookieStorageAdapter z metodami applyToResponse(), stringifySetCookies()
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### Node.js — z własnym `CookieAdapter`
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
const session = await authticon.session({ cookies: myCookieAdapter });
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
#### Przeglądarka
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
const session = await authticon.session({});
|
|
102
|
+
// Automatycznie używa document.cookie
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Opcjonalnie można przekazać `tokenStorage` do nadpisania nazw cookies i ich parametrów:
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
const session = await authticon.session({
|
|
109
|
+
request,
|
|
110
|
+
tokenStorage: {
|
|
111
|
+
accessTokenName: "my_access_token",
|
|
112
|
+
refreshTokenName: "my_refresh_token",
|
|
113
|
+
secure: true,
|
|
114
|
+
sameSite: "Strict",
|
|
115
|
+
domain: ".example.com",
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Metody sesji
|
|
121
|
+
|
|
122
|
+
#### Autentykacja
|
|
123
|
+
|
|
124
|
+
| Metoda | Opis |
|
|
125
|
+
|---|---|
|
|
126
|
+
| `login(params)` | Logowanie (email/password). Zwraca `SessionUser`. |
|
|
127
|
+
| `register(params)` | Rejestracja. Zwraca dane rejestracji (tokeny nie są jeszcze zapisywane). |
|
|
128
|
+
| `sendMagicLink(params)` | Wysyła magic link na email. |
|
|
129
|
+
| `loginWithMagicLink(params)` | Weryfikuje magic link i loguje użytkownika. Zwraca `SessionUser`. |
|
|
130
|
+
| `forgotPassword(params)` | Inicjuje reset hasła. |
|
|
131
|
+
| `verifyEmail(params)` | Weryfikuje email. |
|
|
132
|
+
| `createGuest(params)` | Tworzy użytkownika-gościa. Zwraca `SessionUser`. |
|
|
133
|
+
| `acceptInvitation(params)` | Akceptuje zaproszenie. Zwraca `SessionUser`. |
|
|
134
|
+
| `resendConfirmation(params)` | Ponownie wysyła email potwierdzający. |
|
|
135
|
+
| `logout()` | Wylogowuje (server-side + czyści cookies). |
|
|
136
|
+
| `refresh()` | Wymusza odświeżenie tokenów. |
|
|
137
|
+
|
|
138
|
+
#### Stan użytkownika
|
|
139
|
+
|
|
140
|
+
| Metoda | Opis |
|
|
141
|
+
|---|---|
|
|
142
|
+
| `getUser()` | Zwraca `SessionUser \| null`. |
|
|
143
|
+
| `requireUser()` | Zwraca `SessionUser` lub rzuca `AuthticonError`. |
|
|
144
|
+
| `hasSession()` | Zwraca `boolean` — czy istnieje access token. |
|
|
145
|
+
| `getFirstChallenge()` | Zwraca pierwszy challenge (np. `"verifyTwoFa"`, `"setPassword"`) lub `undefined`. |
|
|
146
|
+
|
|
147
|
+
#### Zarządzanie kontem
|
|
148
|
+
|
|
149
|
+
| Metoda | Opis |
|
|
150
|
+
|---|---|
|
|
151
|
+
| `changeEmail(params)` | Zmiana emaila. |
|
|
152
|
+
| `changePassword(params)` | Zmiana hasła. |
|
|
153
|
+
| `setPassword(params)` | Ustawienie hasła (np. po resecie). |
|
|
154
|
+
| `changePhone(params)` | Zmiana numeru telefonu. |
|
|
155
|
+
| `verifyPhone(params)` | Weryfikacja numeru telefonu. |
|
|
156
|
+
|
|
157
|
+
#### Dwuskładnikowe uwierzytelnianie (2FA)
|
|
158
|
+
|
|
159
|
+
| Metoda | Opis |
|
|
160
|
+
|---|---|
|
|
161
|
+
| `getTwoFaSecret()` | Pobiera sekret 2FA (do wyświetlenia QR code). |
|
|
162
|
+
| `enableTwoFa(params)` | Włącza 2FA. |
|
|
163
|
+
| `disableTwoFa(params)` | Wyłącza 2FA. |
|
|
164
|
+
| `sendTwoFaCode(params)` | Wysyła kod 2FA. |
|
|
165
|
+
| `completeTwoFaChallenge(code, remember?)` | Weryfikuje kod 2FA i aktualizuje sesję. |
|
|
166
|
+
|
|
167
|
+
#### Zaproszenia
|
|
168
|
+
|
|
169
|
+
| Metoda | Opis |
|
|
170
|
+
|---|---|
|
|
171
|
+
| `createInvitation(params)` | Tworzy zaproszenie. |
|
|
172
|
+
| `deleteInvitation(params)` | Usuwa zaproszenie. |
|
|
173
|
+
|
|
174
|
+
#### Tokeny
|
|
175
|
+
|
|
176
|
+
Obiekt `session.tokens` daje bezpośredni dostęp do tokenów:
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
session.tokens.getAccessToken(); // string | null
|
|
180
|
+
session.tokens.getRefreshToken(); // string | null
|
|
181
|
+
session.tokens.verify(); // weryfikuje aktualny access token
|
|
182
|
+
session.tokens.verify(customToken); // weryfikuje dowolny token
|
|
183
|
+
session.tokens.clear(); // czyści tokeny z cookies i resetuje stan sesji
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### SessionUser
|
|
187
|
+
|
|
188
|
+
```typescript
|
|
189
|
+
type SessionUser<Payload> = {
|
|
190
|
+
id: string; // ID użytkownika
|
|
191
|
+
sessionId: string; // ID sesji
|
|
192
|
+
projectId: string; // ID projektu
|
|
193
|
+
role: "guest" | "user";
|
|
194
|
+
isGuest: boolean;
|
|
195
|
+
challenges: Challenge[]; // np. ["verifyTwoFa", "setPassword"]
|
|
196
|
+
payload: Payload; // custom claims z tokena
|
|
197
|
+
raw: AccessTokenPayload; // surowy payload JWT
|
|
198
|
+
};
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Low-level API
|
|
202
|
+
|
|
203
|
+
Oprócz stanowej sesji, `createAuthticon()` udostępnia niskopoziomowe klienty API, które nie zarządzają stanem ani cookies.
|
|
204
|
+
|
|
205
|
+
### `authticon.auth()` — klient publiczny (bez autoryzacji)
|
|
206
|
+
|
|
207
|
+
Bezstanowy klient do endpointów niewymagających tokenu:
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
const auth = authticon.auth();
|
|
211
|
+
|
|
212
|
+
await auth.login({ email: "user@example.com", password: "secret" });
|
|
213
|
+
await auth.register({ email: "user@example.com", password: "secret" });
|
|
214
|
+
await auth.forgotPassword({ email: "user@example.com" });
|
|
215
|
+
await auth.sendMagicLink({ email: "user@example.com" });
|
|
216
|
+
await auth.verifyMagicLink({ token: "..." });
|
|
217
|
+
await auth.verifyEmail({ token: "..." });
|
|
218
|
+
await auth.createGuestUser({ ... });
|
|
219
|
+
await auth.acceptInvitation({ token: "...", password: "..." });
|
|
220
|
+
await auth.resendConfirmation({ email: "..." });
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
> **Uwaga:** Te metody zwracają surowe dane z API (np. tokeny). Zarządzanie cookies/stanem leży po stronie wywołującego.
|
|
224
|
+
|
|
225
|
+
### `authticon.admin(options)` — klient administracyjny (tylko Node.js)
|
|
226
|
+
|
|
227
|
+
Wymaga klucza API. Służy do operacji administracyjnych:
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
const admin = authticon.admin({ apiKey: "your-api-key" });
|
|
231
|
+
|
|
232
|
+
await admin.listUsers({ page: 1 });
|
|
233
|
+
await admin.createUser({ email: "new@example.com", password: "..." });
|
|
234
|
+
await admin.getUser("user-id");
|
|
235
|
+
await admin.updateUser("user-id", { ... });
|
|
236
|
+
await admin.deleteUser("user-id");
|
|
237
|
+
await admin.loginAs({ userId: "user-id" });
|
|
238
|
+
|
|
239
|
+
// Role
|
|
240
|
+
await admin.createUserRole("user-id", { ... });
|
|
241
|
+
await admin.listUserRoles("user-id");
|
|
242
|
+
await admin.updateUserRole("user-id", "role-id", { ... });
|
|
243
|
+
await admin.deleteUserRole("user-id", "role-id");
|
|
244
|
+
|
|
245
|
+
// SMS
|
|
246
|
+
await admin.sendSmsCode("user-id");
|
|
247
|
+
await admin.verifySms("user-id", { code: "123456" });
|
|
248
|
+
|
|
249
|
+
// Test email
|
|
250
|
+
await admin.testEmail({ ... });
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### `authticon.tokens` (tylko Node.js)
|
|
254
|
+
|
|
255
|
+
Bezpośredni dostęp do weryfikatora tokenów na poziomie instancji:
|
|
256
|
+
|
|
257
|
+
```typescript
|
|
258
|
+
const payload = await authticon.tokens.verify(accessToken);
|
|
259
|
+
authticon.tokens.clearKeyCache(); // czyści cache kluczy JWKS
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Cookie adaptery
|
|
263
|
+
|
|
264
|
+
### Node.js — `createNodeCookieStorageAdapter`
|
|
265
|
+
|
|
266
|
+
Parsuje cookies z `Request`, buforuje zmiany i pozwala je aplikować do `Response`:
|
|
267
|
+
|
|
268
|
+
```typescript
|
|
269
|
+
import { createNodeCookieStorageAdapter } from "@authticon/client/node";
|
|
270
|
+
|
|
271
|
+
const cookies = createNodeCookieStorageAdapter(request);
|
|
272
|
+
|
|
273
|
+
// Po operacjach sesji:
|
|
274
|
+
cookies.applyToResponse(response);
|
|
275
|
+
// lub:
|
|
276
|
+
const setCookieHeaders = cookies.stringifySetCookies(); // string[]
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Przeglądarka — `createBrowserCookieAdapter`
|
|
280
|
+
|
|
281
|
+
Operuje bezpośrednio na `document.cookie`:
|
|
282
|
+
|
|
283
|
+
```typescript
|
|
284
|
+
import { createBrowserCookieAdapter } from "@authticon/client/browser";
|
|
285
|
+
|
|
286
|
+
const cookies = createBrowserCookieAdapter();
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### Własny adapter
|
|
290
|
+
|
|
291
|
+
Możesz zaimplementować interfejs `CookieAdapter`:
|
|
292
|
+
|
|
293
|
+
```typescript
|
|
294
|
+
interface CookieAdapter {
|
|
295
|
+
get(name: string): string | null;
|
|
296
|
+
set(name: string, value: string, options: CookieSetOptions): void;
|
|
297
|
+
remove(name: string, options: CookieRemoveOptions): void;
|
|
298
|
+
}
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
## Token storage — konfiguracja cookies
|
|
302
|
+
|
|
303
|
+
```typescript
|
|
304
|
+
type TokenStorageOptions = {
|
|
305
|
+
accessTokenName?: string; // domyślnie: "access_token"
|
|
306
|
+
refreshTokenName?: string; // domyślnie: "refresh_token"
|
|
307
|
+
deviceIdName?: string; // domyślnie: "device_id"
|
|
308
|
+
adminRefreshTokenName?: string; // domyślnie: "admin_refresh_token"
|
|
309
|
+
path?: string; // domyślnie: "/"
|
|
310
|
+
domain?: string;
|
|
311
|
+
secure?: boolean; // domyślnie: true
|
|
312
|
+
sameSite?: "Strict" | "Lax" | "None"; // domyślnie: "Lax"
|
|
313
|
+
accessTokenMaxAge?: number; // domyślnie: 900 (15 min)
|
|
314
|
+
refreshTokenMaxAge?: number; // domyślnie: 2592000 (30 dni)
|
|
315
|
+
};
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
## Obsługa błędów
|
|
319
|
+
|
|
320
|
+
Biblioteka definiuje dedykowaną hierarchię błędów:
|
|
321
|
+
|
|
322
|
+
```typescript
|
|
323
|
+
import {
|
|
324
|
+
AuthticonError,
|
|
325
|
+
AuthticonApiError,
|
|
326
|
+
AuthticonTokenError,
|
|
327
|
+
isAuthticonError,
|
|
328
|
+
isAuthticonApiError,
|
|
329
|
+
isAuthticonTokenError,
|
|
330
|
+
} from "@authticon/client";
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
| Klasa | Opis |
|
|
334
|
+
|---|---|
|
|
335
|
+
| `AuthticonError` | Bazowy błąd (np. brak tokenu, użytkownik niezalogowany) |
|
|
336
|
+
| `AuthticonApiError` | Błąd odpowiedzi API (zawiera `statusCode` i `response`) |
|
|
337
|
+
| `AuthticonTokenError` | Błąd weryfikacji JWT (zawiera `code` i oryginalny `joseError`) |
|
|
338
|
+
|
|
339
|
+
```typescript
|
|
340
|
+
try {
|
|
341
|
+
const user = session.requireUser();
|
|
342
|
+
} catch (error) {
|
|
343
|
+
if (isAuthticonApiError(error)) {
|
|
344
|
+
console.log(error.statusCode); // np. 401
|
|
345
|
+
}
|
|
346
|
+
if (isAuthticonTokenError(error, "ERR_JWT_EXPIRED")) {
|
|
347
|
+
// Token wygasł
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
## Typowanie custom payloadu
|
|
353
|
+
|
|
354
|
+
Biblioteka wspiera generyczne typowanie payloadu JWT:
|
|
355
|
+
|
|
356
|
+
```typescript
|
|
357
|
+
type MyPayload = {
|
|
358
|
+
organizationId: string;
|
|
359
|
+
permissions: string[];
|
|
360
|
+
};
|
|
361
|
+
|
|
362
|
+
const authticon = createAuthticon<MyPayload>({
|
|
363
|
+
projectId: "...",
|
|
364
|
+
});
|
|
365
|
+
|
|
366
|
+
const session = await authticon.session({ request });
|
|
367
|
+
const user = session.getUser();
|
|
368
|
+
|
|
369
|
+
user?.payload.organizationId; // string
|
|
370
|
+
user?.payload.permissions; // string[]
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
## Licencja
|
|
374
|
+
|
|
375
|
+
MIT
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CookieAdapter, CookieSetOptions } from "./types.js";
|
|
2
|
+
export declare class CookieStorageAdapter implements CookieAdapter {
|
|
3
|
+
private readonly cookies;
|
|
4
|
+
private readonly setCookies;
|
|
5
|
+
private readonly values;
|
|
6
|
+
constructor(request: Request);
|
|
7
|
+
get(name: string): string | null;
|
|
8
|
+
set(name: string, value: string, options: CookieSetOptions): void;
|
|
9
|
+
remove(name: string): void;
|
|
10
|
+
stringifySetCookies(): string[];
|
|
11
|
+
stringifyCookies(): string;
|
|
12
|
+
applyToResponse(response: Response): void;
|
|
13
|
+
}
|
|
14
|
+
export declare function createCookieStorageAdapter(request: Request): CookieStorageAdapter;
|
|
15
|
+
//# sourceMappingURL=CookieStorageAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieStorageAdapter.d.ts","sourceRoot":"","sources":["../src/CookieStorageAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElE,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8C;IACzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAE7C,OAAO,EAAE,OAAO;IAmB5B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB;IAW1D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY1B,mBAAmB,IAAI,MAAM,EAAE;IAM/B,gBAAgB,IAAI,MAAM;IAI1B,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAM1C;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,GACf,oBAAoB,CAEtB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as cookiesUtils from "cookie";
|
|
2
|
+
export class CookieStorageAdapter {
|
|
3
|
+
cookies;
|
|
4
|
+
setCookies = {};
|
|
5
|
+
values = new Map();
|
|
6
|
+
constructor(request) {
|
|
7
|
+
this.cookies = cookiesUtils.parseCookie(request.headers.get("Cookie") || "");
|
|
8
|
+
for (const [name, value] of Object.entries(this.cookies)) {
|
|
9
|
+
if (value) {
|
|
10
|
+
this.values.set(name, value);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
for (const raw of request.headers.getSetCookie()) {
|
|
14
|
+
const cookie = cookiesUtils.parseSetCookie(raw);
|
|
15
|
+
this.setCookies[cookie.name] = cookie;
|
|
16
|
+
if (cookie.value) {
|
|
17
|
+
this.values.set(cookie.name, cookie.value);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
get(name) {
|
|
22
|
+
return this.values.get(name) ?? null;
|
|
23
|
+
}
|
|
24
|
+
set(name, value, options) {
|
|
25
|
+
this.values.set(name, value);
|
|
26
|
+
this.setCookies[name] = {
|
|
27
|
+
name,
|
|
28
|
+
value,
|
|
29
|
+
...options,
|
|
30
|
+
sameSite: options.sameSite.toLowerCase(),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
remove(name) {
|
|
34
|
+
this.values.delete(name);
|
|
35
|
+
delete this.cookies[name];
|
|
36
|
+
this.setCookies[name] = {
|
|
37
|
+
name,
|
|
38
|
+
value: "",
|
|
39
|
+
secure: true,
|
|
40
|
+
sameSite: "none",
|
|
41
|
+
maxAge: 0,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
stringifySetCookies() {
|
|
45
|
+
return Object.values(this.setCookies).map((cookie) => cookiesUtils.stringifySetCookie(cookie));
|
|
46
|
+
}
|
|
47
|
+
stringifyCookies() {
|
|
48
|
+
return cookiesUtils.stringifyCookie(this.cookies);
|
|
49
|
+
}
|
|
50
|
+
applyToResponse(response) {
|
|
51
|
+
response.headers.set("Cookie", this.stringifyCookies());
|
|
52
|
+
for (const cookie of this.stringifySetCookies()) {
|
|
53
|
+
response.headers.append("Set-Cookie", cookie);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function createCookieStorageAdapter(request) {
|
|
58
|
+
return new CookieStorageAdapter(request);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=CookieStorageAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieStorageAdapter.js","sourceRoot":"","sources":["../src/CookieStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAGvC,MAAM,OAAO,oBAAoB;IACd,OAAO,CAAuB;IAC9B,UAAU,GAA2C,EAAE,CAAC;IACxD,MAAM,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEzD,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,WAAW,CACrC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CACpC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACtC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,OAAyB;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;YACtB,IAAI;YACJ,KAAK;YACL,GAAG,OAAO;YACV,QAAQ,EACN,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAwC;SACvE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;YACtB,IAAI;YACJ,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,CAAC;SACV,CAAC;IACJ,CAAC;IAED,mBAAmB;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACnD,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,CACxC,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,OAAO,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,eAAe,CAAC,QAAkB;QAChC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAChD,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAgB;IAEhB,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryCacheAdapter.d.ts","sourceRoot":"","sources":["../src/InMemoryCacheAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,0BAA0B,QAAO,YAY7C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const createInMemoryCacheAdapter = () => {
|
|
2
|
+
const store = new Map();
|
|
3
|
+
return {
|
|
4
|
+
get: (key) => store.get(key),
|
|
5
|
+
set: (key, value) => {
|
|
6
|
+
store.set(key, value);
|
|
7
|
+
},
|
|
8
|
+
delete: (key) => {
|
|
9
|
+
store.delete(key);
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=InMemoryCacheAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryCacheAdapter.js","sourceRoot":"","sources":["../src/InMemoryCacheAdapter.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAiB,EAAE;IAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEzC,OAAO;QACL,GAAG,EAAE,CAAI,GAAW,EAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAkB;QACvE,GAAG,EAAE,CAAI,GAAW,EAAE,KAAQ,EAAQ,EAAE;YACtC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,EAAE,CAAC,GAAW,EAAQ,EAAE;YAC5B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/TokenStorage.d.ts
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
|
+
import type { Logger } from "pino";
|
|
1
2
|
import type { CookieAdapter, TokenPair, TokenStorageOptions } from "./types.js";
|
|
2
|
-
export
|
|
3
|
-
private readonly cookies;
|
|
4
|
-
private readonly accessName;
|
|
5
|
-
private readonly refreshName;
|
|
6
|
-
private readonly deviceIdName;
|
|
7
|
-
private readonly setOptions;
|
|
8
|
-
private readonly removeOptions;
|
|
9
|
-
constructor(cookies: CookieAdapter, options?: TokenStorageOptions);
|
|
3
|
+
export type TokenStorage = {
|
|
10
4
|
readonly save: (tokens: TokenPair) => void;
|
|
5
|
+
readonly clear: () => void;
|
|
11
6
|
readonly getAccessToken: () => string | null;
|
|
12
7
|
readonly getRefreshToken: () => string | null;
|
|
13
8
|
readonly getDeviceId: () => string | null;
|
|
9
|
+
readonly getAdminRefreshToken: () => string | null;
|
|
10
|
+
readonly setAccessToken: (accessToken: string) => void;
|
|
11
|
+
readonly setRefreshToken: (refreshToken: string) => void;
|
|
12
|
+
readonly setAdminRefreshToken: (adminRefreshToken: string) => void;
|
|
13
|
+
readonly setDeviceId: (deviceId: string) => void;
|
|
14
|
+
readonly clearAccessToken: () => void;
|
|
15
|
+
readonly clearRefreshToken: () => void;
|
|
16
|
+
readonly clearDeviceId: () => void;
|
|
17
|
+
readonly clearAdminRefreshToken: () => void;
|
|
14
18
|
readonly getAll: () => TokenPair | null;
|
|
15
|
-
|
|
16
|
-
|
|
19
|
+
};
|
|
20
|
+
export declare const createTokenStorage: (cookies: CookieAdapter, options?: TokenStorageOptions, logger?: Logger) => TokenStorage;
|
|
17
21
|
//# sourceMappingURL=TokenStorage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenStorage.d.ts","sourceRoot":"","sources":["../src/TokenStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAGb,SAAS,EACT,mBAAmB,EACpB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenStorage.d.ts","sourceRoot":"","sources":["../src/TokenStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EACV,aAAa,EAGb,SAAS,EACT,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAUpB,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,QAAQ,CAAC,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,oBAAoB,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,IAAI,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,aAAa,EACtB,UAAS,mBAAwB,EACjC,SAAS,MAAM,KACd,YAuGF,CAAC"}
|