@authcore/fastify 0.5.4 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,12 +12,15 @@ npm install @authcore/fastify @authcore/prisma-adapter
12
12
 
13
13
  ```ts
14
14
  import Fastify from 'fastify'
15
+ import cookie from '@fastify/cookie'
15
16
  import { createAuth } from '@authcore/fastify'
16
17
  import { prismaAdapter } from '@authcore/prisma-adapter'
17
18
  import { PrismaClient } from '@prisma/client'
18
19
 
19
20
  const prisma = new PrismaClient()
20
21
  const app = Fastify()
22
+ await app.register(cookie)
23
+
21
24
  const auth = createAuth({
22
25
  db: prismaAdapter(prisma),
23
26
  session: { strategy: 'jwt', secret: process.env.AUTH_SECRET! },
@@ -50,6 +53,7 @@ Returns:
50
53
  - **`auth.plugin(options?)`** Fastify plugin that registers all auth routes
51
54
  - **`auth.authRequired()`** `preHandler` hook that requires authentication, attaches `request.user`
52
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()`
53
57
 
54
58
  ### Routes
55
59
 
@@ -64,6 +68,22 @@ Same endpoints as the Express adapter:
64
68
  | POST | `/auth/verify-email` | `{ token }` | `{ message }` |
65
69
  | POST | `/auth/forgot-password` | `{ email }` | `{ message }` |
66
70
  | POST | `/auth/reset-password` | `{ token, password }` | `{ message }` |
71
+ | POST | `/auth/invite` | `{ email, role? }` | `{ message }` |
72
+ | POST | `/auth/accept-invitation` | `{ token, password }` | `{ user, token }` |
73
+
74
+ ### Role-Based Access Control
75
+
76
+ ```ts
77
+ app.get('/admin', {
78
+ preHandler: [auth.authRequired(), auth.requireRole('admin')]
79
+ }, async (request) => {
80
+ return { message: 'Admin area' }
81
+ })
82
+ ```
83
+
84
+ ### Invitation
85
+
86
+ When the `'invitation'` feature is enabled, `POST /invite` (protected) and `POST /accept-invitation` (public) routes are automatically registered by the plugin.
67
87
 
68
88
  ## License
69
89
 
package/dist/hooks.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { FastifyRequest, FastifyReply } from 'fastify';
2
2
  import type { AuthCore } from '@authcore/core';
3
- import type { PublicUser } from '@authcore/core';
3
+ import type { PublicUser } from '@authcore/types';
4
4
  import '@fastify/cookie';
5
5
  declare module 'fastify' {
6
6
  interface FastifyRequest {
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,iBAAiB,CAAA;AAExB,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,cAAc;QACtB,IAAI,CAAC,EAAE,UAAU,CAAA;KAClB;CACF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQvF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,SAAmB,IAE5E,SAAS,cAAc,EACvB,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAAC,CAejB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,SAAmB,IAE5E,SAAS,cAAc,KACtB,OAAO,CAAC,IAAI,CAAC,CAUjB"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,iBAAiB,CAAA;AAExB,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,cAAc;QACtB,IAAI,CAAC,EAAE,UAAU,CAAA;KAClB;CACF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQvF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,SAAmB,IAE5E,SAAS,cAAc,EACvB,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAAC,CAejB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,SAAmB,IAE5E,SAAS,cAAc,KACtB,OAAO,CAAC,IAAI,CAAC,CAUjB"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AuthCoreConfig } from '@authcore/core';
1
+ import type { AuthCoreConfig } from '@authcore/types';
2
2
  import type { FastifyPluginAsync, preHandlerHookHandler } from 'fastify';
3
3
  import type { PluginConfig } from './plugin.js';
4
4
  export type { PluginConfig };
@@ -25,6 +25,15 @@ export interface FastifyAuth {
25
25
  * a valid token is present, but does NOT reject unauthenticated requests.
26
26
  */
27
27
  authOptional(): preHandlerHookHandler;
28
+ /**
29
+ * Returns a preHandler hook that checks `request.user.role` against the allowed roles.
30
+ * Must be used after `authRequired()`.
31
+ * Returns 403 if the user's role is not in the allowed list.
32
+ *
33
+ * @example
34
+ * `app.get('/admin', { preHandler: [auth.authRequired(), auth.requireRole('admin')] }, handler)`
35
+ */
36
+ requireRole(...roles: string[]): preHandlerHookHandler;
28
37
  }
29
38
  /**
30
39
  * Create a Fastify-specific AuthCore instance.
@@ -54,6 +63,6 @@ export interface FastifyAuth {
54
63
  * ```
55
64
  */
56
65
  export declare function createAuth(config: AuthCoreConfig): FastifyAuth;
57
- export type { AuthCoreConfig, PublicUser, DatabaseAdapter, EmailAdapter } from '@authcore/core';
66
+ export type { AuthCoreConfig, PublicUser, DatabaseAdapter, EmailAdapter } from '@authcore/types';
58
67
  export { AuthError } from '@authcore/core';
59
68
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,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;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,CAgB9D;AAGD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
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,CA+B9D;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
@@ -40,6 +40,20 @@ export function createAuth(config) {
40
40
  authOptional() {
41
41
  return createAuthOptional(core);
42
42
  },
43
+ requireRole(...roles) {
44
+ return ((request, reply, done) => {
45
+ const user = request.user;
46
+ if (!user) {
47
+ void reply.code(401).send({ error: 'Authentication required' });
48
+ return;
49
+ }
50
+ if (!roles.includes(user.role)) {
51
+ void reply.code(403).send({ error: 'Insufficient permissions' });
52
+ return;
53
+ }
54
+ done();
55
+ });
56
+ },
43
57
  };
44
58
  }
45
59
  export { AuthError } from '@authcore/core';
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;AA+BnE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,UAAU,CAAC,MAAsB;IAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IAEnC,OAAO;QACL,MAAM,CAAC,YAA2B;YAChC,OAAO,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC;QAED,YAAY;YACV,OAAO,kBAAkB,CAAC,IAAI,CAA0B,CAAA;QAC1D,CAAC;QAED,YAAY;YACV,OAAO,kBAAkB,CAAC,IAAI,CAA0B,CAAA;QAC1D,CAAC;KACF,CAAA;AACH,CAAC;AAID,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,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;IAEnC,OAAO;QACL,MAAM,CAAC,YAA2B;YAChC,OAAO,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC;QAED,YAAY;YACV,OAAO,kBAAkB,CAAC,IAAI,CAA0B,CAAA;QAC1D,CAAC;QAED,YAAY;YACV,OAAO,kBAAkB,CAAC,IAAI,CAA0B,CAAA;QAC1D,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
@@ -12,6 +12,8 @@ export interface PluginConfig {
12
12
  verifyEmail?: string;
13
13
  forgotPassword?: string;
14
14
  resetPassword?: string;
15
+ invite?: string;
16
+ acceptInvitation?: string;
15
17
  };
16
18
  /** Cookie name for monorepo/cookie mode (default: 'authcore_token') */
17
19
  cookieName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAA;AAC5D,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;KACvB,CAAA;IACD,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAUD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAE,YAAiB,IAoBvC,SAAS,eAAe,mBAwE1D"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAA;AAC5D,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;KAC1B,CAAA;IACD,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAUD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAE,YAAiB,IAuBvC,SAAS,eAAe,mBAiG1D"}
package/dist/plugin.js CHANGED
@@ -12,7 +12,7 @@ function handleError(reply, err) {
12
12
  * Create a Fastify plugin that registers all auth routes.
13
13
  */
14
14
  export function createAuthPlugin(auth, config = {}) {
15
- const { cookieName = 'authcore_token', useCookies = false, routes: routePaths = {}, } = config;
15
+ const { baseUrl = '', cookieName = 'authcore_token', useCookies = false, routes: routePaths = {}, } = config;
16
16
  const paths = {
17
17
  register: routePaths.register ?? '/register',
18
18
  login: routePaths.login ?? '/login',
@@ -21,6 +21,8 @@ export function createAuthPlugin(auth, config = {}) {
21
21
  verifyEmail: routePaths.verifyEmail ?? '/verify-email',
22
22
  forgotPassword: routePaths.forgotPassword ?? '/forgot-password',
23
23
  resetPassword: routePaths.resetPassword ?? '/reset-password',
24
+ invite: routePaths.invite ?? '/invite',
25
+ acceptInvitation: routePaths.acceptInvitation ?? '/accept-invitation',
24
26
  };
25
27
  const isProduction = process.env['NODE_ENV'] === 'production';
26
28
  const authRequired = createAuthRequired(auth, cookieName);
@@ -94,6 +96,31 @@ export function createAuthPlugin(auth, config = {}) {
94
96
  return handleError(reply, err);
95
97
  }
96
98
  });
99
+ // POST /invite (protected, requires auth)
100
+ fastify.post(paths.invite, { preHandler: [authRequired] }, async (request, reply) => {
101
+ try {
102
+ const inviteUrl = `${baseUrl}${paths.acceptInvitation}`;
103
+ await auth.invite(request.body, { inviteUrl });
104
+ return reply.send({ message: 'Invitation sent' });
105
+ }
106
+ catch (err) {
107
+ return handleError(reply, err);
108
+ }
109
+ });
110
+ // POST /accept-invitation (public)
111
+ fastify.post(paths.acceptInvitation, async (request, reply) => {
112
+ try {
113
+ const { user, token } = await auth.acceptInvitation(request.body);
114
+ if (useCookies) {
115
+ void reply.setCookie(cookieName, token, { httpOnly: true, sameSite: 'lax', secure: isProduction, path: '/' });
116
+ return reply.send({ user });
117
+ }
118
+ return reply.send({ user, token });
119
+ }
120
+ catch (err) {
121
+ return handleError(reply, err);
122
+ }
123
+ });
97
124
  };
98
125
  }
99
126
  //# sourceMappingURL=plugin.js.map
@@ -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.5.4",
3
+ "version": "0.7.0",
4
4
  "description": "Fastify adapter for AuthCore",
5
5
  "author": "David Ouatedem",
6
6
  "repository": {
@@ -27,18 +27,23 @@
27
27
  }
28
28
  },
29
29
  "dependencies": {
30
+ "@authcore/core": "^0.7.0",
31
+ "@authcore/types": "^0.7.0"
32
+ },
33
+ "peerDependencies": {
30
34
  "@fastify/cookie": "^11.0.0",
31
- "fastify": "^5.0.0",
32
- "@authcore/core": "^0.5.4"
35
+ "fastify": "^5.0.0"
33
36
  },
34
37
  "devDependencies": {
38
+ "@fastify/cookie": "^11.0.0",
35
39
  "@prisma/client": "^5.22.0",
40
+ "fastify": "^5.0.0",
36
41
  "@types/node": "^20.0.0",
37
42
  "dotenv": "^16.4.0",
38
43
  "prisma": "^5.22.0",
39
44
  "typescript": "^5.4.0",
40
45
  "vitest": "^1.6.0",
41
- "@authcore/prisma-adapter": "^0.5.4"
46
+ "@authcore/prisma-adapter": "^0.7.0"
42
47
  },
43
48
  "files": [
44
49
  "dist",