Skip to content

siiway/prism-lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@siiway/prism

中文

TypeScript SDK for integrating Prism OAuth 2.0 / OpenID Connect identity platform as an authentication source into your services.

Features

  • OAuth 2.0 Authorization Code + PKCE flow
  • OpenID Connect discovery + userinfo
  • Token management (exchange, refresh, introspect, revoke)
  • Resource APIs: profile, apps, teams, domains, webhooks, admin
  • Full TypeScript types for all API responses
  • Zero runtime dependencies
  • Dual ESM/CJS output
  • Works in browser, Node.js, Bun, Deno, Cloudflare Workers

Install

# Bun
bun add @siiway/prism

# npm
npm install @siiway/prism

# pnpm
pnpm add @siiway/prism

Quick Start

import { PrismClient } from "@siiway/prism";

const prism = new PrismClient({
  baseUrl: "https://id.example.com",
  clientId: "your-client-id",
  redirectUri: "http://localhost:3000/callback",
  scopes: ["openid", "profile", "email"],
});

// 1. Redirect user to Prism for login
const { url, pkce } = await prism.createAuthorizationUrl();
// Store pkce.codeVerifier in session, then redirect:
// window.location.href = url;

// 2. Handle callback -- exchange code for tokens
const tokens = await prism.exchangeCode(code, pkce.codeVerifier);

// 3. Get user info
const user = await prism.getUserInfo(tokens.access_token);

// 4. Refresh tokens (requires offline_access scope)
const newTokens = await prism.refreshToken(tokens.refresh_token!);

Documentation

Full documentation is available at docs/ (powered by VitePress):

bun run docs:dev

API Overview

Module Methods
PrismClient createAuthorizationUrl(), exchangeCode(), refreshToken(), getUserInfo(), introspectToken(), revokeToken(), discover()
prism.profile get(), update()
prism.apps list(), create(), update(), delete()
prism.teams list(), create(), update(), delete(), addMember(), removeMember()
prism.domains list(), add(), verify(), delete()
prism.webhooks list(), create(), update(), delete(), listDeliveries()
prism.social listConnections(), disconnect(), listGPGKeys(), addGPGKey(), removeGPGKey()
prism.admin listUsers(), getUser(), updateUser(), deleteUser(), getConfig(), updateConfig()

License

GNU General Public License 3.0. See LICENSE for details.

About

TypeScript SDK for integrating Prism OAuth 2.0 / OpenID Connect identity platform

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Contributors