Skip to content

Commit 7cdf39c

Browse files
committed
feat(react): move from jsonwebtoken to jose
This removes the reliance on node built in modules as they don't work in a browser context without polyfilling.
1 parent 3a9eeba commit 7cdf39c

File tree

4 files changed

+22
-102
lines changed

4 files changed

+22
-102
lines changed

.changeset/stale-cougars-carry.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@labdigital/federated-token-react": minor
3+
---
4+
5+
Replace jsonwebtoken with jose as jsonwebtoken relies on built-in node modules.

packages/react/package.json

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@
1313
"types": "./dist/index.d.ts"
1414
}
1515
},
16-
"keywords": ["graphql", "authentication", "react"],
16+
"keywords": [
17+
"graphql",
18+
"authentication",
19+
"react"
20+
],
1721
"author": "Lab Digital <[email protected]>",
1822
"license": "MIT",
1923
"repository": {
@@ -29,15 +33,17 @@
2933
"test:ci": "vitest run --coverage",
3034
"tsc": "tsc --noEmit"
3135
},
32-
"files": ["dist", "src"],
36+
"files": [
37+
"dist",
38+
"src"
39+
],
3340
"dependencies": {
34-
"js-cookie": "3.0.5",
35-
"jsonwebtoken": "9.0.2"
41+
"jose": "5.4.0",
42+
"js-cookie": "3.0.5"
3643
},
3744
"devDependencies": {
3845
"@types/express": "^4.17.21",
3946
"@types/js-cookie": "3.0.6",
40-
"@types/jsonwebtoken": "9.0.6",
4147
"@types/react": "18.3.3",
4248
"@vitest/coverage-v8": "1.6.0",
4349
"node-mocks-http": "^1.16.1",

packages/react/src/provider.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Auth context for the site
22
"use client";
3+
import { decodeJwt } from "jose";
34
import Cookie from "js-cookie";
4-
import { decode as jwtDecode } from "jsonwebtoken";
55
import {
66
createContext,
77
useCallback,
@@ -240,7 +240,7 @@ export function AuthProvider({
240240
(acc, key) =>
241241
// biome-ignore lint/performance/noAccumulatingSpread: fixme
242242
skipKeys.includes(key) ? acc : { ...acc, [key]: tokenPayload[key] },
243-
{},
243+
{}
244244
);
245245
};
246246
if (userToken) {
@@ -403,7 +403,7 @@ export function useAuth() {
403403
}
404404

405405
export const decodeToken = (token: string): TokenPayload | undefined => {
406-
const decodedToken = jwtDecode(token, { complete: true });
406+
const decodedToken = decodeJwt(token);
407407
if (
408408
!decodedToken ||
409409
!decodedToken.payload ||

pnpm-lock.yaml

Lines changed: 3 additions & 94 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)