@navios/jwt 0.4.0 → 0.5.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 +21 -21
- package/dist/src/jwt.service.d.mts +1 -1
- package/dist/src/jwt.service.d.mts.map +1 -1
- package/dist/src/options/jwt-service.options.d.mts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/lib/_tsup-dts-rollup.d.mts +2 -2
- package/lib/_tsup-dts-rollup.d.ts +2 -2
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +3 -3
- package/lib/index.mjs.map +1 -1
- package/package.json +4 -4
- package/project.json +9 -1
- package/src/jwt.service.mts +3 -3
- package/dist/tsdown.config.d.mts +0 -3
- package/dist/tsdown.config.d.mts.map +0 -1
- package/dist/tsup.config.d.mts +0 -3
- package/dist/tsup.config.d.mts.map +0 -1
- package/dist/vitest.config.d.mts +0 -3
- package/dist/vitest.config.d.mts.map +0 -1
package/README.md
CHANGED
|
@@ -27,19 +27,18 @@ yarn add @navios/jwt
|
|
|
27
27
|
### Basic Setup
|
|
28
28
|
|
|
29
29
|
```typescript
|
|
30
|
-
import { inject } from '@navios/core'
|
|
31
|
-
import { provideJwtService } from '@navios/jwt'
|
|
32
|
-
|
|
30
|
+
import { inject } from '@navios/core'
|
|
31
|
+
import { provideJwtService } from '@navios/jwt'
|
|
33
32
|
|
|
34
33
|
const MyJwtService = provideJwtService({
|
|
35
34
|
secret: 'your-secret-key',
|
|
36
35
|
signOptions: {
|
|
37
|
-
expiresIn: '1h'
|
|
36
|
+
expiresIn: '1h',
|
|
38
37
|
},
|
|
39
38
|
})
|
|
40
39
|
// Or with factory
|
|
41
40
|
const JwtService = provideJwtService(async () => {
|
|
42
|
-
const config = await inject(ConfigService)
|
|
41
|
+
const config = await inject(ConfigService)
|
|
43
42
|
return config.jwt
|
|
44
43
|
})
|
|
45
44
|
```
|
|
@@ -49,20 +48,20 @@ const JwtService = provideJwtService(async () => {
|
|
|
49
48
|
```typescript
|
|
50
49
|
// Create a token
|
|
51
50
|
import { Injectable, syncInject } from '@navios/core'
|
|
52
|
-
import { JwtService } from '../service/jwt.service.mjs'
|
|
53
51
|
//or to load without options
|
|
54
52
|
import { JwtService } from '@navios/jwt'
|
|
55
53
|
|
|
54
|
+
import { JwtService } from '../service/jwt.service.mjs'
|
|
55
|
+
|
|
56
56
|
@Injectable()
|
|
57
57
|
class AuthService {
|
|
58
58
|
jwtService = syncInject(JwtService)
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
async generateToken(userId: number, role: string) {
|
|
61
|
-
const token = await this.jwtService.signAsync({ userId, role })
|
|
62
|
-
return token
|
|
61
|
+
const token = await this.jwtService.signAsync({ userId, role })
|
|
62
|
+
return token
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
|
|
66
65
|
```
|
|
67
66
|
|
|
68
67
|
### Verifying Tokens
|
|
@@ -70,14 +69,14 @@ class AuthService {
|
|
|
70
69
|
```typescript
|
|
71
70
|
try {
|
|
72
71
|
// Verify and decode a token
|
|
73
|
-
const payload = await jwtService.verify(token)
|
|
74
|
-
console.log(payload)
|
|
72
|
+
const payload = await jwtService.verify(token)
|
|
73
|
+
console.log(payload) // { userId: 123, role: 'admin', iat: 1234567890, exp: 1234571490 }
|
|
75
74
|
} catch (error) {
|
|
76
75
|
// Handle verification errors
|
|
77
76
|
if (error instanceof TokenExpiredError) {
|
|
78
|
-
console.error('Token expired')
|
|
77
|
+
console.error('Token expired')
|
|
79
78
|
} else if (error instanceof JsonWebTokenError) {
|
|
80
|
-
console.error('Invalid token')
|
|
79
|
+
console.error('Invalid token')
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
```
|
|
@@ -90,22 +89,23 @@ Configuration options for the JWT service:
|
|
|
90
89
|
|
|
91
90
|
```typescript
|
|
92
91
|
interface JwtServiceOptions {
|
|
93
|
-
signOptions?: SignOptions
|
|
94
|
-
secret?: string
|
|
95
|
-
publicKey?: string | Buffer
|
|
96
|
-
privateKey?: Secret
|
|
97
|
-
verifyOptions?: VerifyOptions
|
|
92
|
+
signOptions?: SignOptions
|
|
93
|
+
secret?: string
|
|
94
|
+
publicKey?: string | Buffer
|
|
95
|
+
privateKey?: Secret
|
|
96
|
+
verifyOptions?: VerifyOptions
|
|
98
97
|
secretOrKeyProvider?: (
|
|
99
98
|
requestType: RequestType,
|
|
100
99
|
token?: string,
|
|
101
|
-
options?: SignOptions | VerifyOptions
|
|
102
|
-
) => Secret | Promise<Secret
|
|
100
|
+
options?: SignOptions | VerifyOptions,
|
|
101
|
+
) => Secret | Promise<Secret>
|
|
103
102
|
}
|
|
104
103
|
```
|
|
105
104
|
|
|
106
105
|
### Error Handling
|
|
107
106
|
|
|
108
107
|
The library exports error classes from the underlying `jsonwebtoken` library:
|
|
108
|
+
|
|
109
109
|
- `TokenExpiredError`: Thrown when the token is expired
|
|
110
110
|
- `NotBeforeError`: Thrown when the token is not yet valid
|
|
111
111
|
- `JsonWebTokenError`: Base class for all JWT errors
|
|
@@ -95,7 +95,7 @@ export declare const JwtServiceToken: InjectionToken<unknown, import("zod/v4").Z
|
|
|
95
95
|
maxAge: import("zod/v4").ZodOptional<import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodString, import("zod/v4").ZodNumber]>>;
|
|
96
96
|
allowInvalidAsymmetricKeyTypes: import("zod/v4").ZodOptional<import("zod/v4").ZodBoolean>;
|
|
97
97
|
}, import("zod/v4/core").$strip>>;
|
|
98
|
-
secretOrKeyProvider: import("zod/v4").ZodOptional<import("zod/v4").ZodFunction<import("zod/v4").ZodTuple<[import("zod/v4").ZodEnum<typeof RequestType>, import("zod/v4").ZodAny, import("zod/v4").ZodOptional<import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodObject<{
|
|
98
|
+
secretOrKeyProvider: import("zod/v4").ZodOptional<import("zod/v4").ZodFunction<import("zod/v4").ZodTuple<readonly [import("zod/v4").ZodEnum<typeof RequestType>, import("zod/v4").ZodAny, import("zod/v4").ZodOptional<import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodObject<{
|
|
99
99
|
algorithm: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
|
|
100
100
|
HS256: "HS256";
|
|
101
101
|
HS384: "HS384";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.service.d.mts","sourceRoot":"","sources":["../../src/jwt.service.mts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"jwt.service.d.mts","sourceRoot":"","sources":["../../src/jwt.service.mts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAU,MAAM,cAAc,CAAA;AAEzE,OAAO,GAAG,MAAM,cAAc,CAAA;AAE9B,OAAO,KAAK,EAEV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,WAAW,EAEZ,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EAEL,WAAW,EACZ,MAAM,mCAAmC,CAAA;AAE1C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAG3B,CAAA;AAED,qBAGa,UAAU;IAKT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,MAAM,wCAEJ;gBAE2B,OAAO,GAAE,iBAAsB;IAE5D,IAAI,CACF,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,WAAW,CAAC,GAChD,MAAM;IACT,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM;IAuChE,SAAS,CACP,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,WAAW,CAAC,GACpD,OAAO,CAAC,MAAM,CAAC;IAClB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAuC9E,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,EAC3B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,gBAAqB,GAC7B,CAAC;IAqBJ,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,EAChC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC;IAsBb,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,aAAa,GAAG,CAAC;IAI9D,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,YAAY;CAkBrB"}
|
|
@@ -232,7 +232,7 @@ export declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
232
232
|
maxAge: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
233
233
|
allowInvalidAsymmetricKeyTypes: z.ZodOptional<z.ZodBoolean>;
|
|
234
234
|
}, z.core.$strip>>;
|
|
235
|
-
secretOrKeyProvider: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodEnum<typeof RequestType>, z.ZodAny, z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
|
|
235
|
+
secretOrKeyProvider: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodEnum<typeof RequestType>, z.ZodAny, z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
|
|
236
236
|
algorithm: z.ZodOptional<z.ZodEnum<{
|
|
237
237
|
HS256: "HS256";
|
|
238
238
|
HS384: "HS384";
|