Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

@sms/plugin-auth

Interfaces

AdminAuthorizer

Defined in: packages/plugins/auth/src/contract.ts:57

Properties

name
name: string;

Defined in: packages/plugins/auth/src/contract.ts:58

Methods

authorize()
authorize(req): boolean | Promise<boolean>;

Defined in: packages/plugins/auth/src/contract.ts:59

Parameters
ParameterType
reqRouteRequest
Returns

boolean | Promise<boolean>


AuthOptions

Defined in: packages/plugins/auth/src/index.ts:28

Properties

bootstrapAdmin?
optional bootstrapAdmin?: {
  login: string;
  name?: string;
  password: string;
};

Defined in: packages/plugins/auth/src/index.ts:30

Created on first boot when the user table is empty.

login
login: string;
name?
optional name?: string;
password
password: string;
iterations?
optional iterations?: number;

Defined in: packages/plugins/auth/src/index.ts:36

PBKDF2 iterations for new hashes. Default 100k; lower only in tests.

prefix?
optional prefix?: string;

Defined in: packages/plugins/auth/src/index.ts:34

Route prefix. Default /api/auth.

sessionTtlMs?
optional sessionTtlMs?: number;

Defined in: packages/plugins/auth/src/index.ts:32

Session lifetime. Default 30 days.


IdentityAdminService

Defined in: packages/plugins/auth/src/contract.ts:39

Key identity-admin — system-only user management.

Methods

activate()
activate(id): Promise<void>;

Defined in: packages/plugins/auth/src/contract.ts:46

Parameters
ParameterType
idnumber
Returns

Promise<void>

create()
create(input): Promise<User>;

Defined in: packages/plugins/auth/src/contract.ts:40

Parameters
ParameterType
input{ isAdmin?: boolean; login: string; name?: string; password: string; }
input.isAdmin?boolean
input.loginstring
input.name?string
input.passwordstring
Returns

Promise<User>

deactivate()
deactivate(id): Promise<void>;

Defined in: packages/plugins/auth/src/contract.ts:45

Also ends the user’s sessions.

Parameters
ParameterType
idnumber
Returns

Promise<void>

setAdmin()
setAdmin(id, isAdmin): Promise<void>;

Defined in: packages/plugins/auth/src/contract.ts:43

Parameters
ParameterType
idnumber
isAdminboolean
Returns

Promise<void>

setPassword()
setPassword(id, password): Promise<void>;

Defined in: packages/plugins/auth/src/contract.ts:42

Also ends the user’s sessions.

Parameters
ParameterType
idnumber
passwordstring
Returns

Promise<void>


IdentityService

Defined in: packages/plugins/auth/src/contract.ts:26

Key identity — no secrets; agent plugins may inject it.

Methods

login()
login(login, password): Promise<Session | undefined>;

Defined in: packages/plugins/auth/src/contract.ts:32

Verify a password and open a session; undefined on bad credentials or an inactive user.

Parameters
ParameterType
loginstring
passwordstring
Returns

Promise<Session | undefined>

logout()
logout(token): Promise<void>;

Defined in: packages/plugins/auth/src/contract.ts:33

Parameters
ParameterType
tokenstring
Returns

Promise<void>

session()
session(token): Promise<Session | undefined>;

Defined in: packages/plugins/auth/src/contract.ts:35

The session behind a token, if live.

Parameters
ParameterType
tokenstring
Returns

Promise<Session | undefined>

user()
user(id): Promise<User | undefined>;

Defined in: packages/plugins/auth/src/contract.ts:30

Parameters
ParameterType
idnumber
Returns

Promise<User | undefined>

users()
users(): Promise<User[]>;

Defined in: packages/plugins/auth/src/contract.ts:29

Returns

Promise<User[]>

whoami()
whoami(req): Promise<User | undefined>;

Defined in: packages/plugins/auth/src/contract.ts:28

The user behind a request’s session cookie / bearer token; undefined when logged out, expired or deactivated.

Parameters
ParameterType
reqRouteRequest
Returns

Promise<User | undefined>


Session

Defined in: packages/plugins/auth/src/contract.ts:19

Properties

expiresAt
expiresAt: string;

Defined in: packages/plugins/auth/src/contract.ts:22

token
token: string;

Defined in: packages/plugins/auth/src/contract.ts:20

user
user: User;

Defined in: packages/plugins/auth/src/contract.ts:21


User

Defined in: packages/plugins/auth/src/contract.ts:10

Properties

active
active: boolean;

Defined in: packages/plugins/auth/src/contract.ts:15

createdAt
createdAt: string;

Defined in: packages/plugins/auth/src/contract.ts:16

id
id: number;

Defined in: packages/plugins/auth/src/contract.ts:11

isAdmin
isAdmin: boolean;

Defined in: packages/plugins/auth/src/contract.ts:14

login
login: string;

Defined in: packages/plugins/auth/src/contract.ts:12

name
name: string;

Defined in: packages/plugins/auth/src/contract.ts:13

Variables

ADMIN_AUTHORIZER_POINT

const ADMIN_AUTHORIZER_POINT: "admin-authorizer" = 'admin-authorizer';

Defined in: packages/plugins/auth/src/contract.ts:55

Extension point (system-only) for AdminAuthorizer items admitting requests to the mutating admin routes without the token. Owned by whichever of auth / admin-api activates first; auth contributes auth-session.


IDENTITY_ADMIN_KEY

const IDENTITY_ADMIN_KEY: "identity-admin" = 'identity-admin';

Defined in: packages/plugins/auth/src/contract.ts:50


IDENTITY_KEY

const IDENTITY_KEY: "identity" = 'identity';

Defined in: packages/plugins/auth/src/contract.ts:49


const SESSION_COOKIE: "sms_session" = 'sms_session';

Defined in: packages/plugins/auth/src/routes.ts:13

Functions

createAuthPlugin()

function createAuthPlugin(opts?): SystemPlugin;

Defined in: packages/plugins/auth/src/index.ts:78

Parameters

ParameterType
optsAuthOptions

Returns

SystemPlugin


hashPassword()

function hashPassword(password, iterations?): Promise<string>;

Defined in: packages/plugins/auth/src/crypto.ts:31

pbkdf2$<iterations>$<salt>$<hash> — self-describing so iterations can be raised later.

Parameters

ParameterTypeDefault value
passwordstringundefined
iterationsnumberPBKDF2_ITERATIONS

Returns

Promise<string>


tokenOf()

function tokenOf(req): string | undefined;

Defined in: packages/plugins/auth/src/routes.ts:20

The session token a request carries: cookie first, then authorization: Bearer.

Parameters

ParameterType
reqRouteRequest

Returns

string | undefined


verifyPassword()

function verifyPassword(password, stored): Promise<boolean>;

Defined in: packages/plugins/auth/src/crypto.ts:44

Parameters

ParameterType
passwordstring
storedstring

Returns

Promise<boolean>