Référence d'API — nodefony/client — runtime
stable
Documentation › Référence d’API › nodefony › client-runtime
Générée depuis les déclarations de types publiées de
nodefony10.0.0-beta.5 : exactement ce que reçoit une application qui l’installe. Cette page n’existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.
nodefony/client#
import { … } from "nodefony/client" — 40 symboles.
Fonctions (6)#
isLoginPageSkin#
function isLoginPageSkin(value: unknown): value is LoginPageSkin
Dit si une valeur nomme un habillage connu.
loginPagePath#
function loginPagePath(from?: string, page?: string): string
Adresse de la page de connexion qui ramène à from une fois connecté — le lien « Se connecter » d’une page applicative.
loginPageSkinFile#
function loginPageSkinFile(skin: LoginPageSkin): string | null
Fichier de la feuille d’un habillage, relatif à LOGIN_PAGE_ASSETS_BASE.
oauth2AuthorizePath#
function oauth2AuthorizePath(provider: string, from?: string, back?: string): string
Adresse qui démarre la connexion par un fournisseur : à ouvrir en navigation PLEINE PAGE, jamais par fetch — le navigateur doit suivre les redirections vers le fournisseur et revenir avec le cookie de session posé au retour.
readSessionAuthentication#
function readSessionAuthentication(session: IMetaBagReader | null): ISessionAuthentication | null
Lit quand et comment une session a été ouverte.
safeRedirectPath#
function safeRedirectPath(value: unknown, fallback?: string): string
Rend value si c’est un chemin LOCAL sûr, sinon fallback.
Constantes (27)#
AUTH_API_BASE#
const AUTH_API_BASE = "/nodefony/security/api/auth"
Base des routes de session : connexion, second facteur, déconnexion, identité.
AUTH_LOGIN_PATH#
const AUTH_LOGIN_PATH = "/nodefony/security/api/auth/login"
Route de connexion par session : POST avec {username, password}.
AUTH_LOGIN_TOTP_PATH#
const AUTH_LOGIN_TOTP_PATH = "/nodefony/security/api/auth/login/totp"
Second facteur après un 202 mfaRequired : POST avec {code} (TOTP ou code de récupération).
AUTH_LOGOUT_PATH#
const AUTH_LOGOUT_PATH = "/nodefony/security/api/auth/logout"
Déconnexion : POST, idempotente ; rend logoutUrl quand la session venait d’un fournisseur.
AUTH_ME_PATH#
const AUTH_ME_PATH = "/nodefony/security/api/auth/me"
Identité de la session courante : GET, toujours 200 — { user }, ou { user: null } sans session.
DEFAULT_LOGIN_PAGE_SKIN#
const DEFAULT_LOGIN_PAGE_SKIN: LoginPageSkin
Habillage servi quand la configuration n’en choisit aucun.
INSECURE_TRANSPORT_MESSAGE#
const INSECURE_TRANSPORT_MESSAGE = "Credentials must be sent over HTTPS"
Refus d’un secret de connexion reçu en clair (HTTP) en production — corps error d’une réponse 403 des routes de connexion.
LOGIN_PAGE_ASSETS_BASE#
const LOGIN_PAGE_ASSETS_BASE = "/nodefony/security/login"
Base des fichiers de la page de connexion par défaut (script, feuille de style). Distincte de la page elle-même, dont le chemin se règle (loginPage.path) : ces fichiers ne changent pas d’adresse quand la page en change.
LOGIN_PAGE_LAYOUTS#
const LOGIN_PAGE_LAYOUTS: readonly [ "card", "split", "bare" ]
Modes de mise en page de la page de connexion par défaut.
LOGIN_PAGE_PATH#
const LOGIN_PAGE_PATH = "/login"
Chemin par défaut de la page de connexion servie par le framework.
LOGIN_PAGE_SCRIPT_PATH#
const LOGIN_PAGE_SCRIPT_PATH = "/nodefony/security/login/login.js"
Script de la page de connexion par défaut (bundle nodefony/login.js).
LOGIN_PAGE_SKINS#
const LOGIN_PAGE_SKINS: readonly [ "frontispiece", "ledger", "horizon", "console", "blueprint", "dots", "minimal", "enterprise", "photo-card" ]
Habillages de la page de connexion par défaut (loginPage.skin).
LOGIN_PAGE_SKIN_SPECS#
const LOGIN_PAGE_SKIN_SPECS: Readonly<Record<LoginPageSkin, ILoginPageSkinSpec>>
Mise en page et fond de chaque habillage — le Record exige les neuf.
LOGIN_PAGE_STYLE_PATH#
const LOGIN_PAGE_STYLE_PATH = "/nodefony/security/login/login.css"
Feuille de style de la page de connexion par défaut.
LOGIN_PAGE_THEME_KEY#
const LOGIN_PAGE_THEME_KEY = "nf-login-theme"
Clé du stockage local où la page de connexion par défaut retient le thème choisi (light ou dark). Le gabarit la lit avant le premier rendu, le script de la page l’écrit à la bascule.
MFA_METHOD_TOTP#
const MFA_METHOD_TOTP = "totp"
Méthode de second facteur « code à usage unique » : un code TOTP, ou un code de récupération, présenté à AUTH_LOGIN_TOTP_PATH.
OAUTH2_API_BASE#
const OAUTH2_API_BASE = "/nodefony/security/api/oauth2"
Base de la connexion par un fournisseur externe (OAuth 2.0 / OpenID Connect).
OAUTH2_CANCELLED_REASON#
const OAUTH2_CANCELLED_REASON = "access_denied"
Code OAuth 2.0 d’une annulation par l’utilisateur (RFC 6749 §4.1.2.1).
OAUTH2_FAILED_REASON#
const OAUTH2_FAILED_REASON = "failed"
Valeur de reason que le callback OAuth pose sur l’écran d’échec quand la cause n’est pas un code normalisé du fournisseur (state invalide, échange du code refusé, compte non provisionné). Seule access_denied dit une ANNULATION ; toute autre valeur est un échec à annoncer.
OAUTH2_PROVIDERS_PATH#
const OAUTH2_PROVIDERS_PATH = "/nodefony/security/api/oauth2/providers"
Fournisseurs de connexion configurés : GET → { providers: {name, label}[] }.
SESSION_AMR_KEY#
const SESSION_AMR_KEY = "amr"
Clé de métadonnée : méthodes d’authentification utilisées (RFC 8176).
SESSION_AUTH_AT_KEY#
const SESSION_AUTH_AT_KEY = "authAt"
Clé de métadonnée : heure de l’authentification (millisecondes epoch).
WEBAUTHN_API_BASE#
const WEBAUTHN_API_BASE = "/nodefony/security/api/webauthn"
Base des cérémonies WebAuthn (passkeys).
WEBAUTHN_LOGIN_OPTIONS_PATH#
const WEBAUTHN_LOGIN_OPTIONS_PATH = "/nodefony/security/api/webauthn/login/options"
Défi de connexion par passkey : POST (corps vide) → options WebAuthn en JSON.
WEBAUTHN_LOGIN_VERIFY_PATH#
const WEBAUTHN_LOGIN_VERIFY_PATH = "/nodefony/security/api/webauthn/login/verify"
Vérification de la passkey : POST avec {response} → ouvre la session.
WEBAUTHN_STATUS_PATH#
const WEBAUTHN_STATUS_PATH = "/nodefony/security/api/webauthn/status"
État de la connexion par passkey : GET → { enabled: boolean }, toujours 200 quand le service existe. Les cérémonies répondent 503 quand les passkeys sont coupées ; cette route permet à un écran de connexion de ne pas proposer un bouton voué à cet échec.
isPlainObject#
const isPlainObject: (obj: unknown) => obj is Record<string, unknown>
Vérifie qu’un objet est un “plain object” — {} ou Object.create(null).
Interfaces (5)#
ILoginPageDescription#
interface ILoginPageDescription
Ce que la page de connexion par défaut doit afficher, décrit par la sécurité et lu par le contrôleur qui la sert.
readonly path: string— Chemin où la page est servie (loginPage.path).readonly title: string | null— Titre de la page, ounullpour le titre par défaut.readonly logo: string | null— Adresse du logo, ounullpour celui de Nodefony.readonly template: string | null— Gabarit.etade l’application qui remplace celui du framework, ounull.readonly heading: string | null— Titre de la carte et de l’onglet, ounullpour « Se connecter ».readonly subtitle: string | null— Ligne sous le titre, ounullpour la phrase déduite des moyens proposés.readonly stylesheet: string | null— Feuille de l’application chargée APRÈS celle du framework, ounull.readonly providersFirst: boolean— Les fournisseurs passent-ils avant le formulaire (quand il y en a) ?readonly hero: ILoginPageHero | false | null— Panneau d’illustration :null= vitrine Nodefony,false= marque seule, sinon le contenu qui la remplace.readonly footer: boolean— Pied de page : protections de la session et mention du framework.readonly skin: LoginPageSkin— Habillage : feuille chargée entre celle du framework et celle de l’application.readonly layout: LoginPageLayout— Mode de mise en page (loginPage.layout, sinon celui de l’habillage).readonly password: boolean— Le formulaire identifiant et mot de passe est-il proposé ?readonly passkey: boolean— La connexion par passkey est-elle proposée ?readonly previewPicker: boolean— Sélecteur d’aperçu demandé (loginPage.previewPicker) ; la page ne l’affiche qu’en développement.readonly previewHook?: string | null— Chemin de l’application appelé enPOST({ skin, layout }) avant chaque rechargement de l’aperçu (loginPage.previewHook), ounull/absent.readonly providers: readonly ILoginPageProvider[]— Fournisseurs à proposer, dans l’ordre de la configuration.
ILoginPageHero#
interface ILoginPageHero
Contenu du panneau d’illustration qui REMPLACE la vitrine Nodefony. Texte seul, échappé au rendu : l’image du panneau passe par la feuille de l’application (--nf-login-hero-image), jamais par une adresse injectée dans le balisage.
readonly heading: string— Accroche du panneau.readonly text: string | null— Phrase sous l’accroche, ounull.
ILoginPageProvider#
interface ILoginPageProvider
Fournisseur d’identité proposé sur la page de connexion.
readonly name: string— Nom du fournisseur, tel qu’il figure dans l’adresse d’autorisation.readonly label: string— Libellé affiché sur le bouton.readonly icon: string | null— Image du bouton (chemin servi par l’application ou URL), ounullpour l’icône du framework (marque GitHub, sinon une clé).
ILoginPageSkinSpec#
interface ILoginPageSkinSpec
Ce qu’un habillage impose au gabarit, au-delà de sa feuille.
readonly layout: LoginPageLayout— Mise en page pour laquelle l’habillage est dessiné, sauflayoutexplicite.readonly backdrop: boolean— Fond de page décoré (motif, image) : le pied passe alors sur une pastille pleine pour rester lisible (<body data-backdrop>).
ISessionAuthentication#
interface ISessionAuthentication
Comment une session a été authentifiée.
readonly at: number— Heure de l’authentification, en millisecondes epoch.readonly amr: readonly string[]— Méthodes utilisées (RFC 8176) ; vide quand un fournisseur a authentifié.
Types (2)#
LoginPageLayout#
type LoginPageLayout = (typeof LOGIN_PAGE_LAYOUTS)[number]
Un mode de mise en page de la page de connexion (loginPage.layout).
LoginPageSkin#
type LoginPageSkin = (typeof LOGIN_PAGE_SKINS)[number]
Un habillage de la page de connexion (loginPage.skin).