MCPcopy Create free account
hub / github.com/MemTensor/MemOS / verifyUserToken

Function verifyUserToken

packages/memos-core/src/hub/auth.ts:58–78  ·  view source on GitHub ↗
(token: string, secret: string)

Source from the content-addressed store, hash-verified

56}
57
58export function verifyUserToken(token: string, secret: string): Omit<UserTokenPayload, "exp"> | null {
59 const idx = token.lastIndexOf(".");
60 if (idx <= 0) return null;
61 const body = token.slice(0, idx);
62 const sig = token.slice(idx + 1);
63 const expected = sign(body, secret);
64
65 try {
66 if (!timingSafeEqual(Buffer.from(sig), Buffer.from(expected))) return null;
67 const parsed = JSON.parse(unbase64url(body).toString("utf8")) as UserTokenPayload;
68 if (parsed.exp < Date.now()) return null;
69 return {
70 userId: parsed.userId,
71 username: parsed.username,
72 role: parsed.role,
73 status: parsed.status,
74 };
75 } catch {
76 return null;
77 }
78}

Callers 2

ensureBootstrapAdminMethod · 0.90
authenticateMethod · 0.90

Calls 3

signFunction · 0.70
unbase64urlFunction · 0.70
parseMethod · 0.45

Tested by

no test coverage detected