Skip to content

h3

INFO

Available in >4.3.0

This adapter provides utility functions to convert between h3 H3Event objects and the OAuthRequest/OAuthResponse objects used by this package. Works with any h3-based framework including Nuxt, Nitro, and standalone h3 applications.

Unlike the other adapters, this one calls h3 at runtime, so h3 (^1.15.0, declared as an optional peer dependency) must be installed in your project.

Functions

ts
requestFromH3(event: H3Event): Promise<OAuthRequest>
ts
responseFromH3(event: H3Event): OAuthResponse
ts
handleH3Response(event: H3Event, oauthResponse: OAuthResponse): Promise<void>
ts
handleH3Error(e: unknown | OAuthException, event: H3Event): Promise<void>

Return (or await) handleH3Response/handleH3Error from your event handler so h3 waits for the response to be written.

Example

ts
import { requestFromH3, handleH3Response, handleH3Error } from "@jmondi/oauth2-server/h3";

export default defineEventHandler(async (event) => {
  try {
    const oauthResponse = await authorizationServer.respondToAccessTokenRequest(
      await requestFromH3(event),
    );
    return handleH3Response(event, oauthResponse);
  } catch (e) {
    return handleH3Error(e, event);
  }
});