@authdog/gatsby
v0.1.1
Published
Authdog Gatsby SDK
Readme
@authdog/gatsby
Authdog SDK for Gatsby — a React client provider plus server helpers for Gatsby Functions.
Sessions use the same authdog-session cookie and OIDC userinfo flow as every
other @authdog/* package, so one Authdog environment works across your stack.
Install
bun add @authdog/gatsby @authdog/react-elementsProvide your public key (pk_…). The browser reads it via Gatsby's GATSBY_
prefix; Functions read it server-side:
GATSBY_AUTHDOG_PUBLIC_KEY=pk_xxxxxxxxxxxxxxxx # exposed to the browser
PK_AUTHDOG=pk_xxxxxxxxxxxxxxxx # server-only (Functions)Client
Wrap your app in gatsby-browser.js / gatsby-ssr.js:
// gatsby-browser.js
import "@authdog/react-elements/styles.css";
import { AuthdogProvider } from "@authdog/gatsby/client";
export const wrapRootElement = ({ element }) => (
<AuthdogProvider>{element}</AuthdogProvider>
);The provider strips the ?token=… the login redirect appends and reloads once so
the server can persist the HttpOnly session cookie.
Server (Gatsby Functions)
// src/api/me.ts
import { createAuthdog } from "@authdog/gatsby/server";
const authdog = createAuthdog({ publicKey: process.env.PK_AUTHDOG! });
// requireAuth is the real server-side enforcement point.
export default authdog.requireAuth(async (req, res) => {
res.json(req.authdog.user);
});// src/api/logout.ts
export { logoutHandler as default } from "@authdog/gatsby/server";API
| Export | Entry | Description |
| ---------------------------------- | --------- | ------------------------------------------------ |
| AuthdogProvider, ReloadPage | /client | React provider + callback helper |
| initAuthdog, clearAuthdogToken | /client | Browser token bootstrap / sign-out |
| createAuthdog | /server | getSession, getUser, requireAuth, logout |
| getSessionToken, logoutHandler | /server | Low-level helpers |
| getPublicKeyPayload | /server | Validated public-key parser |
License
MIT © Authdog
