Jose DataError: HMAC key data must not be empty
Hey y'all. Working on adding my own auth flow to my Next/T3 app using a magic link/email.
The link takes you to
/api/sign/<your auth token>
where Jose signs a JWT and I attach it to a cookie.
It had been working fine before, but suddenly it's throwing a DataError: HMAC key data must not be empty
error. I did some Googling, came across only one instance where someone had this issue on GitHub (https://github.com/panva/jose/issues/698) but wasn't helping at all.
Using the following package versions:
- next 14.2.1
- jose 5.9.6GitHub
HMAC key data must not be empty · Issue #698 · panva/jose
What happened? I am trying to use compactVerify (just to verify signature is matching my HS256 key, nothing else), but when sending in an empty string, as the secret parameter (after encoding it in...
5 Replies
Here's the
/src/app/api/sign/route.ts
file:
I was using middleware to parse and validate the auth cookie but needed to use Prisma. I had issues adding Prisma to edge runtime so I instead moved it over to my
providers.tsx
file.
Discord isn't letting me post the code for some reason so here's a Hastebin link with the providers code: https://hastebin.com/share/enomewaken.javascriptHastebin
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
I verified that
jwt
and secret
in the providers code are not null or blank, which is what it looks like the error I'm getting would be caused by. I also confirmed they're the exact same from when the JWT is being signed.It seems like the
secret
variable value comes from the env.JWT_SECRET
. Maybe it's not set?I made sure
jwt
and secret
are both set. I even logged it to make sure