diff --git a/src/index.ts b/src/index.ts index b37e5ce..c866482 100644 --- a/src/index.ts +++ b/src/index.ts @@ -55,7 +55,7 @@ export const generateAPIKey = async ({ export const extractLongToken = (token: string) => token.split("_").slice(-1)?.[0] -export const extractShortToken = (token: string) => token.split("_")?.[1] +export const extractShortToken = (token: string) => token.split("_").slice(-2)[0] export const extractLongTokenHash = (token: string) => hashLongToken(extractLongToken(token)) diff --git a/tests/utilities.test.ts b/tests/utilities.test.ts index c9b7c6e..bf6e7fa 100644 --- a/tests/utilities.test.ts +++ b/tests/utilities.test.ts @@ -15,6 +15,8 @@ const exampleKey = { token: "mycompany_BRTRKFsL_51FwqftsmMDHHbJAMEXXHCgG", } +const tokenWithUnderScore = `mycompany_withunderscore_${exampleKey.shortToken}_${exampleKey.longToken}` + test("hashLongToken", async (t) => { t.is(hashLongToken(exampleKey.longToken), exampleKey.longTokenHash) }) @@ -23,6 +25,7 @@ test("extractLongToken", async (t) => { }) test("extractShortToken", async (t) => { t.is(extractShortToken(exampleKey.token), exampleKey.shortToken) + t.is(extractShortToken(tokenWithUnderScore), exampleKey.shortToken) }) test("getTokenComponents", async (t) => { t.deepEqual(getTokenComponents(exampleKey.token), exampleKey)