JSPM

@akkikhan/saas-framework-auth

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 14
  • Score
    100M100P100Q41882F
  • License MIT

Authentication SDK for SaaS Framework multi-tenant applications

Package Exports

  • @akkikhan/saas-framework-auth
  • @akkikhan/saas-framework-auth/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@akkikhan/saas-framework-auth) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@saas-framework/auth

A comprehensive authentication SDK for multi-tenant SaaS applications built with the SaaS Framework.

Features

  • JWT Token Management: Secure token generation, validation, and refresh
  • Multi-tenant Support: Isolated authentication per tenant
  • Express Middleware: Drop-in authentication middleware for Express.js
  • TypeScript Support: Full TypeScript definitions included
  • Flexible Configuration: Easily configurable for different environments

Installation

npm install @saas-framework/auth

Quick Start

import { SaaSAuth } from '@saas-framework/auth';

const auth = new SaaSAuth({
  apiKey: 'your-tenant-auth-api-key',
  baseUrl: 'https://your-saas-platform.com/api/v2/auth'
});

// Login user
const session = await auth.login('user@example.com', 'password');

// Verify token
const isValid = await auth.verifyToken(session.token);

// Get current user
const user = await auth.getCurrentUser(session.token);

Express.js Integration

import express from 'express';
import { SaaSAuth } from '@saas-framework/auth';

const app = express();
const auth = new SaaSAuth({ /* config */ });

// Protect routes with authentication middleware
app.use('/api/protected', auth.middleware());

app.get('/api/protected/profile', (req, res) => {
  // req.user is automatically populated by the middleware
  res.json({ user: req.user });
});

API Reference

Constructor

new SaaSAuth(config: SaaSAuthConfig)

SaaSAuthConfig

  • apiKey (string): Your tenant's authentication API key
  • baseUrl (string): Base URL of your SaaS platform's auth endpoints

Methods

login(email: string, password: string): Promise<AuthSession>

Authenticates a user with email and password.

Returns: AuthSession containing token, user info, and expiration

verifyToken(token: string): Promise<boolean>

Verifies if a JWT token is valid and not expired.

getCurrentUser(token: string): Promise<User>

Retrieves user information from a valid JWT token.

refreshToken(refreshToken: string): Promise<{ token: string }>

Refreshes an expired JWT token using a refresh token.

logout(token: string): Promise<void>

Logs out a user and invalidates their token.

middleware(options?: { required?: boolean }): RequestHandler

Express.js middleware for route authentication.

Options:

  • required (boolean, default: true): Whether authentication is required

Error Handling

All methods throw descriptive errors that can be caught and handled:

try {
  const session = await auth.login(email, password);
} catch (error) {
  console.error('Login failed:', error.message);
}

TypeScript Types

The package includes full TypeScript definitions:

interface AuthSession {
  token: string;
  user: {
    id: string;
    email: string;
    tenantId: string;
    isActive: boolean;
  };
  expiresAt: Date;
}

License

MIT

Support

For issues and questions, please visit: GitHub Issues