@@ -13,11 +13,8 @@ const DEFAULT_MAX_AGE = 30 * 24 * 60 * 60 // 30 days
1313const now = ( ) => ( Date . now ( ) / 1000 ) | 0
1414
1515/** Issues a JWT. By default, the JWT is encrypted using "A256GCM". */
16- export async function encode ( {
17- token = { } ,
18- secret,
19- maxAge = DEFAULT_MAX_AGE ,
20- } : JWTEncodeParams ) {
16+ export async function encode ( params : JWTEncodeParams ) {
17+ const { token = { } , secret, maxAge = DEFAULT_MAX_AGE } = params
2118 const encryptionSecret = await getDerivedEncryptionKey ( secret )
2219 return await new EncryptJWT ( token )
2320 . setProtectedHeader ( { alg : "dir" , enc : "A256GCM" } )
@@ -28,10 +25,8 @@ export async function encode({
2825}
2926
3027/** Decodes a NextAuth.js issued JWT. */
31- export async function decode ( {
32- token,
33- secret,
34- } : JWTDecodeParams ) : Promise < JWT | null > {
28+ export async function decode ( params : JWTDecodeParams ) : Promise < JWT | null > {
29+ const { token, secret } = params
3530 if ( ! token ) return null
3631 const encryptionSecret = await getDerivedEncryptionKey ( secret )
3732 const { payload } = await jwtDecrypt ( token , encryptionSecret , {
@@ -55,7 +50,11 @@ export interface GetTokenParams<R extends boolean = false> {
5550 * @default false
5651 */
5752 raw ?: R
58- secret : string
53+ /**
54+ * The same `secret` used in the `NextAuth` configuration.
55+ * Defaults to the `NEXTAUTH_SECRET` environment variable.
56+ */
57+ secret ?: string
5958 decode ?: JWTOptions [ "decode" ]
6059 logger ?: LoggerInstance | Console
6160}
@@ -78,6 +77,7 @@ export async function getToken<R extends boolean = false>(
7877 raw,
7978 decode : _decode = decode ,
8079 logger = console ,
80+ secret = process . env . NEXTAUTH_SECRET ,
8181 } = params ?? { }
8282
8383 if ( ! req ) throw new Error ( "Must pass `req` to JWT getToken()" )
@@ -103,7 +103,7 @@ export async function getToken<R extends boolean = false>(
103103
104104 try {
105105 // @ts -expect-error
106- return await _decode ( { token, ... params } )
106+ return await _decode ( { token, secret } )
107107 } catch {
108108 // @ts -expect-error
109109 return null
0 commit comments