# jose (JWT) in Node.js cookbook
This note contains various snippets for doing JWT stuff using the jose(opens new window) library.
# Verifying JWT
import { jwtVerify } from 'jose'
import { createPublicKey } from 'crypto'
const publicKey = createPublicKey(publicKeyStr)
const result = await jwtVerify(authToken, async () => publicKey)
# Generating JWT
import { SignJWT } from 'jose'
import { createPrivateKey } from 'crypto'
const privateKey = createPrivateKey(privateKeyStr)
const payload = {
/* ... */
}
const kid = '...'
const expiresIn = 86400
const token = await new SignJWT(payload)
.setProtectedHeader({ alg: 'RS256', kid })
.setExpirationTime(Math.floor(Date.now() / 1000) + expiresIn)
.sign(privateKey)
# HS256
For HS256, use createSecretKey
instead of createPrivateKey
or createPublicKey
:
import { createSecretKey } from 'crypto'
const secretKey = createSecretKey('my random string', 'utf-8')