fix: Use the correct defaults for the invite token expiry (#10344)

This commit is contained in:
Stevche Radevski
2024-11-28 12:06:32 +01:00
committed by GitHub
parent aced04e182
commit f7279f1b96
3 changed files with 45 additions and 8 deletions

View File

@@ -1,14 +1,16 @@
import { IUserModuleService } from "@medusajs/framework/types/dist/user"
import { IUserModuleService } from "@medusajs/framework/types"
import { Modules, UserEvents } from "@medusajs/framework/utils"
import {
MockEventBusService,
moduleIntegrationTestRunner,
} from "@medusajs/test-utils"
import jwt, { JwtPayload } from "jsonwebtoken"
jest.setTimeout(30000)
const today = new Date()
const expireDate = new Date(today.setDate(today.getDate() + 10))
const expireDate = new Date().setMilliseconds(
new Date().getMilliseconds() + 60 * 60 * 24
)
const defaultInviteData = [
{
@@ -111,6 +113,11 @@ moduleIntegrationTestRunner<IUserModuleService>({
id,
})
)
const tokenContent = jwt.decode(invite.token) as JwtPayload
expect(tokenContent.exp).toBeLessThanOrEqual(
Date.now() / 1000 + 60 * 60 * 24
)
})
it("should throw an error when an invite with the given id does not exist", async () => {

View File

@@ -27,8 +27,7 @@ type InjectedDependencies = {
inviteService: ModulesSdkTypes.IMedusaInternalService<any>
}
// 1 day
const DEFAULT_VALID_INVITE_DURATION = 60 * 60 * 24 * 1000
const DEFAULT_VALID_INVITE_DURATION_SECONDS = 60 * 60 * 24
export default class UserModuleService
extends MedusaService<{
User: {
@@ -60,7 +59,7 @@ export default class UserModuleService
jwtSecret: moduleDeclaration["jwt_secret"],
expiresIn:
parseInt(moduleDeclaration["valid_duration"]) ||
DEFAULT_VALID_INVITE_DURATION,
DEFAULT_VALID_INVITE_DURATION_SECONDS,
}
if (!this.config.jwtSecret) {
@@ -153,7 +152,7 @@ export default class UserModuleService
return {
id: invite.id,
expires_at: new Date().setMilliseconds(
new Date().getMilliseconds() + this.config.expiresIn
new Date().getMilliseconds() + this.config.expiresIn * 1000
),
token: this.generateToken({ id: invite.id, email: invite.email }),
}
@@ -325,7 +324,7 @@ export default class UserModuleService
return {
id: invite.id,
expires_at: new Date().setMilliseconds(
new Date().getMilliseconds() + this.config.expiresIn
new Date().getMilliseconds() + this.config.expiresIn * 1000
),
token: this.generateToken({ id: invite.id, email: invite.email }),
}