JWT認証ミドルウェア
JWT認証ミドルウェアは、JWTでトークンを検証することにより認証を提供します。 cookie
オプションが設定されていない場合、ミドルウェアは Authorization
ヘッダーを確認します。
情報
クライアントから送信される Authorization ヘッダーには、指定されたスキームが必要です。
例: Bearer my.token.value
または Basic my.token.value
インポート
TypeScript
import { Hono } from 'hono'
import { jwt } from 'hono/jwt'
import type { JwtVariables } from 'hono/jwt'
使用方法
TypeScript
// Specify the variable types to infer the `c.get('jwtPayload')`:
type Variables = JwtVariables
const app = new Hono<{ Variables: Variables }>()
app.use(
'/auth/*',
jwt({
secret: 'it-is-very-secret',
})
)
app.get('/auth/page', (c) => {
return c.text('You are authorized')
})
ペイロードを取得する
TypeScript
const app = new Hono()
app.use(
'/auth/*',
jwt({
secret: 'it-is-very-secret',
})
)
app.get('/auth/page', (c) => {
const payload = c.get('jwtPayload')
return c.json(payload) // eg: { "sub": "1234567890", "name": "John Doe", "iat": 1516239022 }
})
ヒント
jwt()
は単なるミドルウェア関数です。環境変数(例: c.env.JWT_SECRET
)を使用する場合は、次のように使用できます。
JavaScript
app.use('/auth/*', (c, next) => {
const jwtMiddleware = jwt({
secret: c.env.JWT_SECRET,
})
return jwtMiddleware(c, next)
})
オプション
必須 secret: string
秘密鍵の値。
オプション cookie: string
この値が設定されている場合、その値をキーとして使用して Cookie ヘッダーから値が取得され、トークンとして検証されます。
オプション alg: string
検証に使用されるアルゴリズムタイプ。
デフォルトは HS256
です。
使用可能なタイプは HS256
| HS384
| HS512
| RS256
| RS384
| RS512
| PS256
| PS384
| PS512
| ES256
| ES384
| ES512
| EdDSA
です。