npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@react-foundry/fastify-auth

v0.1.7

Published

Authentication plugin for Fastify.

Downloads

727

Readme

React Foundry - Fastify-Auth

Authentication plugin for Fastify. Allows you to authenticate uses by a variety of methods and obtain identity information and roles for use on each request. Also provides a session when requested or when required by the authentication method.

Using this package

First install the package into your project:

npm install -S @react-foundry/fastify-auth

Then use it in your code as follows:

import Fastify from 'fastify';
import { AuthMethod, fastifyAuth } from '@react-foundry/fastify-auth';

const httpd = Fastify();

httpd.register(fastifyAuth, {
  privacy: false,
  session: {
    cookies: {
      secret: 'changeme' // Change this to a secret string that is shared across instances of your application
    }
  },
  method: AuthMethod.OIDC,
  issuer: 'https://keycloak/realms/my-realm/', // Change this to the URL for your OIDC provider
  clientId: 'my-client',                       // Change this to your client ID
  clientSecret: 'my-client-secret',            // Change this to your client secret
  redirectUri: 'https://my-website/'           // Change this to the base URL that the OIDC provider should redirect back to
});

httpd.get('/', async (req, _reply) => {
  const user = req.user.username || 'guest';
  const message = `Hello ${user}`;

  return message;
});

await httpd.listen({
  host: '::'
  port: 8080
});

fastifyAuth

A Fastify plugin which can be 'registered' with the following options.

Options object:

  • method: 'none' | 'dummy' | 'headers' | 'basic' | 'oidc' The method to use to authenticate users.
    • 'none': No authentication (you might want this if you just want a session).
    • 'dummy': Dummy authentication; useful for testing.
    • 'headers': Trusts auth information provided on HTTP headers (such as by a reverse proxy). WARNING: This is insecure when not behind a reverse authentication proxy.
    • 'basic': HTTP Basic authentication.
    • 'oidc': OpenID Connect. (Such as Keycloak etc.)
  • privacy: boolean When true, user must be authenticated to access any part of the website. When false, users can still access the website but may not have access to all features when those features require certain roles. Users can typically choose to log-in to acquire extra permissions.
  • session: object See: https://www.npmjs.com/package/@react-foundry/fastify-session

req.user: object

An object representing the user data. Includes the username and roles. When using OIDC, it should also contain the accessToken for making requests to other services on behalf of the user.

Working on this package

Before working on this package you must install its dependencies using the following command:

pnpm install

Building

Build the package by compiling the source code.

npm run build

Clean-up

Remove any previously built files.

npm run clean