@authcore/fastify 0.7.0 → 0.12.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/LICENSE +21 -21
- package/README.md +110 -90
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts +33 -2
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +259 -16
- package/dist/plugin.js.map +1 -1
- package/package.json +4 -4
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 David Ouatedem
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 David Ouatedem
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,90 +1,110 @@
|
|
|
1
|
-
# @authcore/fastify
|
|
2
|
-
|
|
3
|
-
> Fastify adapter for AuthCore. Plugin with auth routes and request hooks.
|
|
4
|
-
|
|
5
|
-
## Install
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @authcore/fastify @authcore/prisma-adapter
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Usage
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
import Fastify from 'fastify'
|
|
15
|
-
import cookie from '@fastify/cookie'
|
|
16
|
-
import { createAuth } from '@authcore/fastify'
|
|
17
|
-
import { prismaAdapter } from '@authcore/prisma-adapter'
|
|
18
|
-
import { PrismaClient } from '@prisma/client'
|
|
19
|
-
|
|
20
|
-
const prisma = new PrismaClient()
|
|
21
|
-
const app = Fastify()
|
|
22
|
-
await app.register(cookie)
|
|
23
|
-
|
|
24
|
-
const auth = createAuth({
|
|
25
|
-
db: prismaAdapter(prisma),
|
|
26
|
-
session: { strategy: 'jwt', secret: process.env.AUTH_SECRET! },
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
// Register auth plugin, adds all auth routes under /auth
|
|
30
|
-
await app.register(auth.plugin(), { prefix: '/auth' })
|
|
31
|
-
|
|
32
|
-
// Protect routes
|
|
33
|
-
app.get('/dashboard', { preHandler: auth.authRequired() }, async (request) => {
|
|
34
|
-
return { user: request.user }
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
// Optional auth
|
|
38
|
-
app.get('/public', { preHandler: auth.authOptional() }, async (request) => {
|
|
39
|
-
return { user: request.user ?? null }
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
await app.listen({ port: 3000 })
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## API
|
|
46
|
-
|
|
47
|
-
### `createAuth(config)`
|
|
48
|
-
|
|
49
|
-
Creates a Fastify auth instance. See [`@authcore/core`](https://www.npmjs.com/package/@authcore/core) for the full config reference.
|
|
50
|
-
|
|
51
|
-
Returns:
|
|
52
|
-
|
|
53
|
-
- **`auth.plugin(options?)`** Fastify plugin that registers all auth routes
|
|
54
|
-
- **`auth.authRequired()`** `preHandler` hook that requires authentication, attaches `request.user`
|
|
55
|
-
- **`auth.authOptional()`** `preHandler` hook that optionally attaches `request.user`
|
|
56
|
-
- **`auth.requireRole(...roles)`** `preHandler` hook that checks `request.user.role`, returns 403 if not allowed. Must be used after `authRequired()`
|
|
57
|
-
|
|
58
|
-
###
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
1
|
+
# @authcore/fastify
|
|
2
|
+
|
|
3
|
+
> Fastify adapter for AuthCore. Plugin with auth routes and request hooks.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @authcore/fastify @authcore/prisma-adapter
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import Fastify from 'fastify'
|
|
15
|
+
import cookie from '@fastify/cookie'
|
|
16
|
+
import { createAuth } from '@authcore/fastify'
|
|
17
|
+
import { prismaAdapter } from '@authcore/prisma-adapter'
|
|
18
|
+
import { PrismaClient } from '@prisma/client'
|
|
19
|
+
|
|
20
|
+
const prisma = new PrismaClient()
|
|
21
|
+
const app = Fastify()
|
|
22
|
+
await app.register(cookie)
|
|
23
|
+
|
|
24
|
+
const auth = createAuth({
|
|
25
|
+
db: prismaAdapter(prisma),
|
|
26
|
+
session: { strategy: 'jwt', secret: process.env.AUTH_SECRET! },
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
// Register auth plugin, adds all auth routes under /auth
|
|
30
|
+
await app.register(auth.plugin(), { prefix: '/auth' })
|
|
31
|
+
|
|
32
|
+
// Protect routes
|
|
33
|
+
app.get('/dashboard', { preHandler: auth.authRequired() }, async (request) => {
|
|
34
|
+
return { user: request.user }
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
// Optional auth
|
|
38
|
+
app.get('/public', { preHandler: auth.authOptional() }, async (request) => {
|
|
39
|
+
return { user: request.user ?? null }
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
await app.listen({ port: 3000 })
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## API
|
|
46
|
+
|
|
47
|
+
### `createAuth(config)`
|
|
48
|
+
|
|
49
|
+
Creates a Fastify auth instance. See [`@authcore/core`](https://www.npmjs.com/package/@authcore/core) for the full config reference.
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
|
|
53
|
+
- **`auth.plugin(options?)`** Fastify plugin that registers all auth routes
|
|
54
|
+
- **`auth.authRequired()`** `preHandler` hook that requires authentication, attaches `request.user`
|
|
55
|
+
- **`auth.authOptional()`** `preHandler` hook that optionally attaches `request.user`
|
|
56
|
+
- **`auth.requireRole(...roles)`** `preHandler` hook that checks `request.user.role`, returns 403 if not allowed. Must be used after `authRequired()`
|
|
57
|
+
|
|
58
|
+
### Cookie name: configure once
|
|
59
|
+
|
|
60
|
+
The cookie name is read from `session.cookieName` (default `'authcore_token'`) by both the plugin (when `useCookies: true`) and the `authRequired()` / `authOptional()` hooks. Put it on `session` so both paths agree:
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
const auth = createAuth({
|
|
64
|
+
db: prismaAdapter(prisma),
|
|
65
|
+
session: {
|
|
66
|
+
strategy: 'jwt',
|
|
67
|
+
secret: process.env.AUTH_SECRET!,
|
|
68
|
+
cookieName: 'my_token',
|
|
69
|
+
},
|
|
70
|
+
})
|
|
71
|
+
await app.register(cookie)
|
|
72
|
+
await app.register(auth.plugin({ useCookies: true }), { prefix: '/auth' })
|
|
73
|
+
app.get('/dashboard', { preHandler: [auth.authRequired()] }, async (req) => ({ user: req.user }))
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
> **Fixed in 0.9:** before 0.9, `cookieName` on `plugin()` only affected the plugin's own routes; `auth.authRequired()` exposed to consumers always defaulted to `'authcore_token'`. Custom cookie names now work end-to-end.
|
|
77
|
+
|
|
78
|
+
### Routes
|
|
79
|
+
|
|
80
|
+
Same endpoints as the Express adapter:
|
|
81
|
+
|
|
82
|
+
| Method | Route | Body | Response |
|
|
83
|
+
|--------|-------|------|----------|
|
|
84
|
+
| POST | `/auth/register` | `{ email, password }` | `{ user, token }` |
|
|
85
|
+
| POST | `/auth/login` | `{ email, password }` | `{ user, token }` |
|
|
86
|
+
| POST | `/auth/logout` | - | `{ message }` |
|
|
87
|
+
| GET | `/auth/me` | - | `{ user }` |
|
|
88
|
+
| POST | `/auth/verify-email` | `{ token }` | `{ message }` |
|
|
89
|
+
| POST | `/auth/forgot-password` | `{ email }` | `{ message }` |
|
|
90
|
+
| POST | `/auth/reset-password` | `{ token, password }` | `{ message }` |
|
|
91
|
+
| POST | `/auth/invite` | `{ email, role? }` | `{ message }` |
|
|
92
|
+
| POST | `/auth/accept-invitation` | `{ token, password }` | `{ user, token }` |
|
|
93
|
+
|
|
94
|
+
### Role-Based Access Control
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
app.get('/admin', {
|
|
98
|
+
preHandler: [auth.authRequired(), auth.requireRole('admin')]
|
|
99
|
+
}, async (request) => {
|
|
100
|
+
return { message: 'Admin area' }
|
|
101
|
+
})
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Invitation
|
|
105
|
+
|
|
106
|
+
When the `'invitation'` feature is enabled, `POST /invite` (protected) and `POST /accept-invitation` (public) routes are automatically registered by the plugin.
|
|
107
|
+
|
|
108
|
+
## License
|
|
109
|
+
|
|
110
|
+
[MIT](https://github.com/david-ouatedem/auth-core/blob/main/LICENSE)
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,kBAAkB,CAAA;IAEjD;;;;;;OAMG;IACH,YAAY,IAAI,qBAAqB,CAAA;IAErC;;;OAGG;IACH,YAAY,IAAI,qBAAqB,CAAA;IAErC;;;;;;;OAOG;IACH,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAA;CACvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,kBAAkB,CAAA;IAEjD;;;;;;OAMG;IACH,YAAY,IAAI,qBAAqB,CAAA;IAErC;;;OAGG;IACH,YAAY,IAAI,qBAAqB,CAAA;IAErC;;;;;;;OAOG;IACH,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAA;CACvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,CAgC9D;AAGD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -30,15 +30,16 @@ import { createAuthRequired, createAuthOptional } from './hooks.js';
|
|
|
30
30
|
*/
|
|
31
31
|
export function createAuth(config) {
|
|
32
32
|
const core = createCoreAuth(config);
|
|
33
|
+
const cookieName = core.config.session.cookieName ?? 'authcore_token';
|
|
33
34
|
return {
|
|
34
35
|
plugin(pluginConfig) {
|
|
35
36
|
return createAuthPlugin(core, pluginConfig);
|
|
36
37
|
},
|
|
37
38
|
authRequired() {
|
|
38
|
-
return createAuthRequired(core);
|
|
39
|
+
return createAuthRequired(core, cookieName);
|
|
39
40
|
},
|
|
40
41
|
authOptional() {
|
|
41
|
-
return createAuthOptional(core);
|
|
42
|
+
return createAuthOptional(core, cookieName);
|
|
42
43
|
},
|
|
43
44
|
requireRole(...roles) {
|
|
44
45
|
return ((request, reply, done) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAyCnE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,UAAU,CAAC,MAAsB;IAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAyCnE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,UAAU,CAAC,MAAsB;IAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,gBAAgB,CAAA;IAErE,OAAO;QACL,MAAM,CAAC,YAA2B;YAChC,OAAO,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC;QAED,YAAY;YACV,OAAO,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAA0B,CAAA;QACtE,CAAC;QAED,YAAY;YACV,OAAO,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAA0B,CAAA;QACtE,CAAC;QAED,WAAW,CAAC,GAAG,KAAe;YAC5B,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;gBACzB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAA;oBAC/D,OAAM;gBACR,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAA;oBAChE,OAAM;gBACR,CAAC;gBACD,IAAI,EAAE,CAAA;YACR,CAAC,CAA0B,CAAA;QAC7B,CAAC;KACF,CAAA;AACH,CAAC;AAID,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -14,11 +14,42 @@ export interface PluginConfig {
|
|
|
14
14
|
resetPassword?: string;
|
|
15
15
|
invite?: string;
|
|
16
16
|
acceptInvitation?: string;
|
|
17
|
+
refresh?: string;
|
|
18
|
+
revoke?: string;
|
|
19
|
+
/** OAuth start route. Default: '/oauth/:provider'. Must include ':provider' placeholder. */
|
|
20
|
+
oauth?: string;
|
|
21
|
+
/** OAuth callback route. Default: '/oauth/:provider/callback'. Must include ':provider' placeholder. */
|
|
22
|
+
oauthCallback?: string;
|
|
23
|
+
/** Magic-link send route (POST). Default: '/magic-link'. */
|
|
24
|
+
sendMagicLink?: string;
|
|
25
|
+
/** Magic-link consume route (GET). Default: '/magic-link/consume'. */
|
|
26
|
+
consumeMagicLink?: string;
|
|
27
|
+
/** 2FA setup (authed POST). Default: '/2fa/setup'. */
|
|
28
|
+
setupTwoFactor?: string;
|
|
29
|
+
/** 2FA enable confirmation (authed POST). Default: '/2fa/enable'. */
|
|
30
|
+
enableTwoFactor?: string;
|
|
31
|
+
/** 2FA disable (authed POST, requires password). Default: '/2fa/disable'. */
|
|
32
|
+
disableTwoFactor?: string;
|
|
33
|
+
/** 2FA verify TOTP code (public POST). Default: '/2fa/verify'. */
|
|
34
|
+
verifyTwoFactor?: string;
|
|
35
|
+
/** 2FA recovery-code use (public POST). Default: '/2fa/recovery'. */
|
|
36
|
+
useRecoveryCode?: string;
|
|
17
37
|
};
|
|
18
|
-
/** Cookie name for monorepo/cookie mode (default: 'authcore_token') */
|
|
38
|
+
/** Cookie name for monorepo/cookie mode (default: 'authcore_token'). Refresh cookie uses `${cookieName}_refresh`, CSRF cookie uses `${cookieName}_csrf`. */
|
|
19
39
|
cookieName?: string;
|
|
20
|
-
/** If true, set
|
|
40
|
+
/** If true, set httpOnly cookies on login/register/refresh/accept-invitation instead of returning token in body */
|
|
21
41
|
useCookies?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Where to redirect the user after a successful OAuth callback in cookie mode.
|
|
44
|
+
* Default: '/'. Ignored when `useCookies` is false (the response is JSON).
|
|
45
|
+
*/
|
|
46
|
+
oauthSuccessRedirect?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Where to redirect the user after a successful magic-link consume in
|
|
49
|
+
* cookie mode. Default: '/'. In api mode + this set, the server redirects
|
|
50
|
+
* to that URL with `#token=…&refreshToken=…`.
|
|
51
|
+
*/
|
|
52
|
+
magicLinkSuccessRedirect?: string;
|
|
22
53
|
}
|
|
23
54
|
/**
|
|
24
55
|
* Create a Fastify plugin that registers all auth routes.
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAA;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,OAAO,iBAAiB,CAAA;AAGxB,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,4FAA4F;QAC5F,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,wGAAwG;QACxG,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,4DAA4D;QAC5D,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,sEAAsE;QACtE,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,sDAAsD;QACtD,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,qEAAqE;QACrE,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,6EAA6E;QAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,kEAAkE;QAClE,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,qEAAqE;QACrE,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,4JAA4J;IAC5J,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mHAAmH;IACnH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC;AAYD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAE,YAAiB,IAgEvC,SAAS,eAAe,mBAoS1D"}
|
package/dist/plugin.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuthError } from '@authcore/core';
|
|
1
|
+
import { AuthError, generateCsrfToken, safeCompareTokens } from '@authcore/core';
|
|
2
2
|
import '@fastify/cookie';
|
|
3
3
|
import { createAuthRequired } from './hooks.js';
|
|
4
4
|
function handleError(reply, err) {
|
|
@@ -8,11 +8,16 @@ function handleError(reply, err) {
|
|
|
8
8
|
console.error('[AuthCore]', err);
|
|
9
9
|
return reply.code(500).send({ error: 'Internal server error' });
|
|
10
10
|
}
|
|
11
|
+
const STATE_CHANGING_METHODS = new Set(['POST', 'PUT', 'PATCH', 'DELETE']);
|
|
11
12
|
/**
|
|
12
13
|
* Create a Fastify plugin that registers all auth routes.
|
|
13
14
|
*/
|
|
14
15
|
export function createAuthPlugin(auth, config = {}) {
|
|
15
|
-
const { baseUrl = '',
|
|
16
|
+
const { baseUrl = '', useCookies = false, routes: routePaths = {}, } = config;
|
|
17
|
+
const cookieName = config.cookieName ?? auth.config.session.cookieName ?? 'authcore_token';
|
|
18
|
+
const refreshCookieName = `${cookieName}_refresh`;
|
|
19
|
+
const csrfCookieName = `${cookieName}_csrf`;
|
|
20
|
+
const csrfEnabled = auth.config.session.csrf === true;
|
|
16
21
|
const paths = {
|
|
17
22
|
register: routePaths.register ?? '/register',
|
|
18
23
|
login: routePaths.login ?? '/login',
|
|
@@ -23,19 +28,70 @@ export function createAuthPlugin(auth, config = {}) {
|
|
|
23
28
|
resetPassword: routePaths.resetPassword ?? '/reset-password',
|
|
24
29
|
invite: routePaths.invite ?? '/invite',
|
|
25
30
|
acceptInvitation: routePaths.acceptInvitation ?? '/accept-invitation',
|
|
31
|
+
refresh: routePaths.refresh ?? '/refresh',
|
|
32
|
+
revoke: routePaths.revoke ?? '/revoke',
|
|
33
|
+
oauth: routePaths.oauth ?? '/oauth/:provider',
|
|
34
|
+
oauthCallback: routePaths.oauthCallback ?? '/oauth/:provider/callback',
|
|
35
|
+
sendMagicLink: routePaths.sendMagicLink ?? '/magic-link',
|
|
36
|
+
consumeMagicLink: routePaths.consumeMagicLink ?? '/magic-link/consume',
|
|
37
|
+
setupTwoFactor: routePaths.setupTwoFactor ?? '/2fa/setup',
|
|
38
|
+
enableTwoFactor: routePaths.enableTwoFactor ?? '/2fa/enable',
|
|
39
|
+
disableTwoFactor: routePaths.disableTwoFactor ?? '/2fa/disable',
|
|
40
|
+
verifyTwoFactor: routePaths.verifyTwoFactor ?? '/2fa/verify',
|
|
41
|
+
useRecoveryCode: routePaths.useRecoveryCode ?? '/2fa/recovery',
|
|
26
42
|
};
|
|
43
|
+
const oauthSuccessRedirect = config.oauthSuccessRedirect ?? '/';
|
|
44
|
+
const magicLinkSuccessRedirect = config.magicLinkSuccessRedirect ?? '/';
|
|
27
45
|
const isProduction = process.env['NODE_ENV'] === 'production';
|
|
28
46
|
const authRequired = createAuthRequired(auth, cookieName);
|
|
47
|
+
function setAuthCookies(reply, token, refreshToken) {
|
|
48
|
+
void reply.setCookie(cookieName, token, { httpOnly: true, sameSite: 'lax', secure: isProduction, path: '/' });
|
|
49
|
+
void reply.setCookie(refreshCookieName, refreshToken, { httpOnly: true, sameSite: 'lax', secure: isProduction, path: '/' });
|
|
50
|
+
if (csrfEnabled) {
|
|
51
|
+
void reply.setCookie(csrfCookieName, generateCsrfToken(), {
|
|
52
|
+
httpOnly: false,
|
|
53
|
+
sameSite: 'lax',
|
|
54
|
+
secure: isProduction,
|
|
55
|
+
path: '/',
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function clearAuthCookies(reply) {
|
|
60
|
+
void reply.clearCookie(cookieName, { path: '/' });
|
|
61
|
+
void reply.clearCookie(refreshCookieName, { path: '/' });
|
|
62
|
+
if (csrfEnabled)
|
|
63
|
+
void reply.clearCookie(csrfCookieName, { path: '/' });
|
|
64
|
+
}
|
|
65
|
+
function readRefreshToken(request) {
|
|
66
|
+
const body = request.body;
|
|
67
|
+
if (body?.refreshToken)
|
|
68
|
+
return body.refreshToken;
|
|
69
|
+
return request.cookies[refreshCookieName] ?? null;
|
|
70
|
+
}
|
|
29
71
|
return async function authPlugin(fastify) {
|
|
72
|
+
if (csrfEnabled) {
|
|
73
|
+
fastify.addHook('preHandler', async (request, reply) => {
|
|
74
|
+
if (!STATE_CHANGING_METHODS.has(request.method.toUpperCase()))
|
|
75
|
+
return;
|
|
76
|
+
const cookieToken = request.cookies[csrfCookieName];
|
|
77
|
+
if (!cookieToken)
|
|
78
|
+
return; // first request — no CSRF cookie yet
|
|
79
|
+
const headerToken = request.headers['x-csrf-token'];
|
|
80
|
+
const headerValue = Array.isArray(headerToken) ? headerToken[0] : headerToken;
|
|
81
|
+
if (!headerValue || !safeCompareTokens(cookieToken, headerValue)) {
|
|
82
|
+
return reply.code(403).send({ error: 'CSRF token missing or invalid', code: 'CSRF_INVALID' });
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
30
86
|
// POST /register
|
|
31
87
|
fastify.post(paths.register, async (request, reply) => {
|
|
32
88
|
try {
|
|
33
|
-
const { user, token } = await auth.register(request.body);
|
|
89
|
+
const { user, token, refreshToken } = await auth.register(request.body);
|
|
34
90
|
if (useCookies) {
|
|
35
|
-
|
|
91
|
+
setAuthCookies(reply, token, refreshToken);
|
|
36
92
|
return reply.code(201).send({ user });
|
|
37
93
|
}
|
|
38
|
-
return reply.code(201).send({ user, token });
|
|
94
|
+
return reply.code(201).send({ user, token, refreshToken });
|
|
39
95
|
}
|
|
40
96
|
catch (err) {
|
|
41
97
|
return handleError(reply, err);
|
|
@@ -44,22 +100,65 @@ export function createAuthPlugin(auth, config = {}) {
|
|
|
44
100
|
// POST /login
|
|
45
101
|
fastify.post(paths.login, async (request, reply) => {
|
|
46
102
|
try {
|
|
47
|
-
const
|
|
103
|
+
const result = await auth.login(request.body);
|
|
104
|
+
if ('requires2FA' in result) {
|
|
105
|
+
return reply.send({ requires2FA: true, challengeToken: result.challengeToken });
|
|
106
|
+
}
|
|
107
|
+
const { user, token, refreshToken } = result;
|
|
108
|
+
if (useCookies) {
|
|
109
|
+
setAuthCookies(reply, token, refreshToken);
|
|
110
|
+
return reply.send({ user });
|
|
111
|
+
}
|
|
112
|
+
return reply.send({ user, token, refreshToken });
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
return handleError(reply, err);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
// POST /refresh
|
|
119
|
+
fastify.post(paths.refresh, async (request, reply) => {
|
|
120
|
+
try {
|
|
121
|
+
const rawRefresh = readRefreshToken(request);
|
|
122
|
+
if (!rawRefresh) {
|
|
123
|
+
return reply.code(401).send({ error: 'Refresh token is required', code: 'INVALID_TOKEN' });
|
|
124
|
+
}
|
|
125
|
+
const { user, token, refreshToken } = await auth.refresh(rawRefresh);
|
|
48
126
|
if (useCookies) {
|
|
49
|
-
|
|
127
|
+
setAuthCookies(reply, token, refreshToken);
|
|
50
128
|
return reply.send({ user });
|
|
51
129
|
}
|
|
52
|
-
return reply.send({ user, token });
|
|
130
|
+
return reply.send({ user, token, refreshToken });
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
return handleError(reply, err);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
// POST /revoke
|
|
137
|
+
fastify.post(paths.revoke, async (request, reply) => {
|
|
138
|
+
try {
|
|
139
|
+
const rawRefresh = readRefreshToken(request);
|
|
140
|
+
if (rawRefresh)
|
|
141
|
+
await auth.revoke(rawRefresh);
|
|
142
|
+
if (useCookies)
|
|
143
|
+
clearAuthCookies(reply);
|
|
144
|
+
return reply.send({ message: 'Revoked' });
|
|
53
145
|
}
|
|
54
146
|
catch (err) {
|
|
55
147
|
return handleError(reply, err);
|
|
56
148
|
}
|
|
57
149
|
});
|
|
58
|
-
// POST /logout
|
|
59
|
-
fastify.post(paths.logout, async (
|
|
60
|
-
|
|
61
|
-
|
|
150
|
+
// POST /logout — revoke refresh + clear cookies
|
|
151
|
+
fastify.post(paths.logout, async (request, reply) => {
|
|
152
|
+
try {
|
|
153
|
+
const rawRefresh = readRefreshToken(request);
|
|
154
|
+
if (rawRefresh)
|
|
155
|
+
await auth.revoke(rawRefresh);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// Swallow — logout best-effort
|
|
62
159
|
}
|
|
160
|
+
if (useCookies)
|
|
161
|
+
clearAuthCookies(reply);
|
|
63
162
|
return reply.send({ message: 'Logged out successfully' });
|
|
64
163
|
});
|
|
65
164
|
// GET /me — protected
|
|
@@ -79,7 +178,8 @@ export function createAuthPlugin(auth, config = {}) {
|
|
|
79
178
|
// POST /forgot-password — always 200
|
|
80
179
|
fastify.post(paths.forgotPassword, async (request, reply) => {
|
|
81
180
|
try {
|
|
82
|
-
|
|
181
|
+
const resetUrl = `${baseUrl}${paths.resetPassword}`;
|
|
182
|
+
await auth.forgotPassword(request.body, { resetUrl });
|
|
83
183
|
}
|
|
84
184
|
catch {
|
|
85
185
|
// Intentionally swallow — no email enumeration
|
|
@@ -110,12 +210,155 @@ export function createAuthPlugin(auth, config = {}) {
|
|
|
110
210
|
// POST /accept-invitation (public)
|
|
111
211
|
fastify.post(paths.acceptInvitation, async (request, reply) => {
|
|
112
212
|
try {
|
|
113
|
-
const { user, token } = await auth.acceptInvitation(request.body);
|
|
213
|
+
const { user, token, refreshToken } = await auth.acceptInvitation(request.body);
|
|
214
|
+
if (useCookies) {
|
|
215
|
+
setAuthCookies(reply, token, refreshToken);
|
|
216
|
+
return reply.send({ user });
|
|
217
|
+
}
|
|
218
|
+
return reply.send({ user, token, refreshToken });
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
return handleError(reply, err);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
// POST /2fa/setup — authed
|
|
225
|
+
fastify.post(paths.setupTwoFactor, { preHandler: [authRequired] }, async (request, reply) => {
|
|
226
|
+
try {
|
|
227
|
+
const result = await auth.setupTwoFactor(request.user.id);
|
|
228
|
+
return reply.send(result);
|
|
229
|
+
}
|
|
230
|
+
catch (err) {
|
|
231
|
+
return handleError(reply, err);
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
// POST /2fa/enable — authed; body { code }
|
|
235
|
+
fastify.post(paths.enableTwoFactor, { preHandler: [authRequired] }, async (request, reply) => {
|
|
236
|
+
try {
|
|
237
|
+
const body = request.body;
|
|
238
|
+
if (!body?.code) {
|
|
239
|
+
return reply.code(400).send({ error: 'code is required', code: 'VALIDATION_ERROR' });
|
|
240
|
+
}
|
|
241
|
+
await auth.enableTwoFactor(request.user.id, body.code);
|
|
242
|
+
return reply.send({ message: 'Two-factor authentication enabled' });
|
|
243
|
+
}
|
|
244
|
+
catch (err) {
|
|
245
|
+
return handleError(reply, err);
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
// POST /2fa/disable — authed; body { password }
|
|
249
|
+
fastify.post(paths.disableTwoFactor, { preHandler: [authRequired] }, async (request, reply) => {
|
|
250
|
+
try {
|
|
251
|
+
const body = request.body;
|
|
252
|
+
if (!body?.password) {
|
|
253
|
+
return reply.code(400).send({ error: 'password is required', code: 'VALIDATION_ERROR' });
|
|
254
|
+
}
|
|
255
|
+
await auth.disableTwoFactor(request.user.id, body.password);
|
|
256
|
+
return reply.send({ message: 'Two-factor authentication disabled' });
|
|
257
|
+
}
|
|
258
|
+
catch (err) {
|
|
259
|
+
return handleError(reply, err);
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
// POST /2fa/verify — public; body { challengeToken, code }
|
|
263
|
+
fastify.post(paths.verifyTwoFactor, async (request, reply) => {
|
|
264
|
+
try {
|
|
265
|
+
const body = request.body;
|
|
266
|
+
if (!body?.challengeToken || !body?.code) {
|
|
267
|
+
return reply.code(400).send({ error: 'challengeToken and code are required', code: 'VALIDATION_ERROR' });
|
|
268
|
+
}
|
|
269
|
+
const { user, token, refreshToken } = await auth.verifyTwoFactor(body.challengeToken, body.code);
|
|
270
|
+
if (useCookies) {
|
|
271
|
+
setAuthCookies(reply, token, refreshToken);
|
|
272
|
+
return reply.send({ user });
|
|
273
|
+
}
|
|
274
|
+
return reply.send({ user, token, refreshToken });
|
|
275
|
+
}
|
|
276
|
+
catch (err) {
|
|
277
|
+
return handleError(reply, err);
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
// POST /2fa/recovery — public; body { challengeToken, code }
|
|
281
|
+
fastify.post(paths.useRecoveryCode, async (request, reply) => {
|
|
282
|
+
try {
|
|
283
|
+
const body = request.body;
|
|
284
|
+
if (!body?.challengeToken || !body?.code) {
|
|
285
|
+
return reply.code(400).send({ error: 'challengeToken and code are required', code: 'VALIDATION_ERROR' });
|
|
286
|
+
}
|
|
287
|
+
const { user, token, refreshToken } = await auth.useRecoveryCode(body.challengeToken, body.code);
|
|
114
288
|
if (useCookies) {
|
|
115
|
-
|
|
289
|
+
setAuthCookies(reply, token, refreshToken);
|
|
116
290
|
return reply.send({ user });
|
|
117
291
|
}
|
|
118
|
-
return reply.send({ user, token });
|
|
292
|
+
return reply.send({ user, token, refreshToken });
|
|
293
|
+
}
|
|
294
|
+
catch (err) {
|
|
295
|
+
return handleError(reply, err);
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
// POST /magic-link — always 200 (enumeration-safe)
|
|
299
|
+
fastify.post(paths.sendMagicLink, async (request, reply) => {
|
|
300
|
+
try {
|
|
301
|
+
const magicLinkUrl = `${baseUrl}${paths.consumeMagicLink}`;
|
|
302
|
+
await auth.sendMagicLink(request.body, { magicLinkUrl });
|
|
303
|
+
}
|
|
304
|
+
catch (err) {
|
|
305
|
+
if (err instanceof AuthError && err.code !== 'INVALID_TOKEN') {
|
|
306
|
+
return handleError(reply, err);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return reply.send({ message: 'If that email exists, a sign-in link has been sent.' });
|
|
310
|
+
});
|
|
311
|
+
// GET /magic-link/consume?token=…
|
|
312
|
+
fastify.get(paths.consumeMagicLink, async (request, reply) => {
|
|
313
|
+
try {
|
|
314
|
+
const q = request.query;
|
|
315
|
+
const { user, token: jwt, refreshToken } = await auth.consumeMagicLink({ token: q.token ?? '' });
|
|
316
|
+
if (useCookies) {
|
|
317
|
+
setAuthCookies(reply, jwt, refreshToken);
|
|
318
|
+
return reply.redirect(magicLinkSuccessRedirect);
|
|
319
|
+
}
|
|
320
|
+
if (config.magicLinkSuccessRedirect) {
|
|
321
|
+
const params = new URLSearchParams({ token: jwt, refreshToken });
|
|
322
|
+
return reply.redirect(`${magicLinkSuccessRedirect}#${params.toString()}`);
|
|
323
|
+
}
|
|
324
|
+
return reply.send({ user, token: jwt, refreshToken });
|
|
325
|
+
}
|
|
326
|
+
catch (err) {
|
|
327
|
+
return handleError(reply, err);
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
// GET /oauth/:provider — kick off OAuth flow
|
|
331
|
+
fastify.get(paths.oauth, async (request, reply) => {
|
|
332
|
+
try {
|
|
333
|
+
const provider = String(request.params.provider ?? '');
|
|
334
|
+
const redirectUri = `${baseUrl}${paths.oauthCallback.replace(':provider', provider)}`;
|
|
335
|
+
const { authorizationUrl } = await auth.oauthStart(provider, redirectUri);
|
|
336
|
+
return reply.redirect(authorizationUrl);
|
|
337
|
+
}
|
|
338
|
+
catch (err) {
|
|
339
|
+
return handleError(reply, err);
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
// GET /oauth/:provider/callback — provider redirects here with ?code&state
|
|
343
|
+
fastify.get(paths.oauthCallback, async (request, reply) => {
|
|
344
|
+
try {
|
|
345
|
+
const provider = String(request.params.provider ?? '');
|
|
346
|
+
const q = request.query;
|
|
347
|
+
const redirectUri = `${baseUrl}${paths.oauthCallback.replace(':provider', provider)}`;
|
|
348
|
+
const { user, token, refreshToken } = await auth.oauthCallback(provider, {
|
|
349
|
+
code: q.code ?? '',
|
|
350
|
+
state: q.state ?? '',
|
|
351
|
+
redirectUri,
|
|
352
|
+
});
|
|
353
|
+
if (useCookies) {
|
|
354
|
+
setAuthCookies(reply, token, refreshToken);
|
|
355
|
+
return reply.redirect(oauthSuccessRedirect);
|
|
356
|
+
}
|
|
357
|
+
if (config.oauthSuccessRedirect) {
|
|
358
|
+
const params = new URLSearchParams({ token, refreshToken });
|
|
359
|
+
return reply.redirect(`${oauthSuccessRedirect}#${params.toString()}`);
|
|
360
|
+
}
|
|
361
|
+
return reply.send({ user, token, refreshToken });
|
|
119
362
|
}
|
|
120
363
|
catch (err) {
|
|
121
364
|
return handleError(reply, err);
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@authcore/fastify",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Fastify adapter for AuthCore",
|
|
5
5
|
"author": "David Ouatedem",
|
|
6
6
|
"repository": {
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@authcore/core": "^0.
|
|
31
|
-
"@authcore/types": "^0.
|
|
30
|
+
"@authcore/core": "^0.12.0",
|
|
31
|
+
"@authcore/types": "^0.12.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@fastify/cookie": "^11.0.0",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"prisma": "^5.22.0",
|
|
44
44
|
"typescript": "^5.4.0",
|
|
45
45
|
"vitest": "^1.6.0",
|
|
46
|
-
"@authcore/prisma-adapter": "^0.
|
|
46
|
+
"@authcore/prisma-adapter": "^0.12.0"
|
|
47
47
|
},
|
|
48
48
|
"files": [
|
|
49
49
|
"dist",
|