OAuth 2.1 Authorization Code + PKCE-klientbibliotek för SSIS.
npm install @ssis/ssisauthimport { ssisauth } from "@ssis/ssisauth";
const auth = ssisauth({
secrets: {
clientId: "ditt-client-id",
clientSecret: "din-client-secret", // valfritt för publika klienter (stable version)
},
scopes: ["openid", "profile", "email"],
// issuer är som standard https://authentication-git-authentication.apps.okd.ssis.nu (beta)
});
// Anropas en gång vid sidladdning — hanterar OAuth-återanropet automatiskt
await auth.initialize();
// Omdirigera användaren till inloggningssidan
auth.signin();
// Läs den aktiva sessionen (null om inte inloggad)
const session = auth.useSession;
console.log(session?.user?.email);
// Logga ut användaren (rensar sessionen och omdirigerar till utloggningsendpunkten)
auth.logout();Skapar en autentiseringsinstans.
| Alternativ | Typ | Obligatorisk | Standard |
|---|---|---|---|
secrets.clientId |
string |
✅ | — |
secrets.clientSecret |
string |
❌ | — |
scopes |
string[] |
❌ | ["openid", "profile", "email"] |
issuer |
string |
❌ | SSIS issuer-URL |
redirectUri |
string |
❌ | aktuell sid-URL |
discover |
boolean |
❌ | true — hämtar endpunkter automatiskt via OIDC-konfigurationen |
verifyTokens |
boolean |
❌ | false — kryptografisk verifiering av id_token via JWKS |
Måste anropas vid sidladdning. Identifierar ett OAuth-återanrop (?code=…&state=…), byter koden mot tokens, sparar sessionen och rensar URL:en.
Genererar PKCE-parametrar och omdirigerar till auktoriseringsendpunkten.
| Alternativ | Typ | Standard |
|---|---|---|
options.redirectUri |
string |
aktuell sid-URL |
Getter — returnerar den aktuella Session från localStorage, eller null om användaren inte är inloggad eller om sessionen har gått ut.
interface Session {
accessToken: string;
idToken?: string;
refreshToken?: string;
tokenType: string;
expiresAt: number; // epoch ms
scope?: string;
user?: UserInfo;
}Rensar den lokala sessionen och omdirigerar till utloggningsendpunkten.
| Alternativ | Typ | Standard |
|---|---|---|
options.redirectTo |
string |
window.location.origin |
Returnerar användaren från den sparade sessionen. Om sessionen saknar cachad användarinfo hämtas den från /userinfo-endpunkten.
Hämtar och cachar OpenID Connect-konfigurationsdokumentet från /.well-known/openid-configuration. Returnerar all leverantörsmetadata inklusive stödda scopes, algoritmer och endpunkt-URL:er.
Hämtar och cachar leverantörens publika nycklar från JWKS-endpunkten (/api/auth/jwks). Nycklarna används för verifiering av id_token.
Verifierar kryptografiskt en JWT (RS256) med hjälp av leverantörens JWKS-nycklar. Validerar signaturen, utgångstid (exp), giltighetstid från (nbf), issuer och audience.
const claims = await auth.verifyToken(session.idToken!);
console.log(claims.sub, claims.email);npm install
npm run build # kompilera till dist/
npm run test # kör tester i bevakningsläge
npm run test:run # kör tester en gång
npm run typecheck # typkontroll utan att emittera filer| Endpunkt | URL |
|---|---|
| Auktorisering | /api/auth/oauth2/authorize |
| Token | /api/auth/oauth2/token |
| Användarinfo | /api/auth/oauth2/userinfo |
| Utloggning | /api/auth/oauth2/logout |
| JWKS | /api/auth/jwks |
| OpenID-konfiguration | /.well-known/openid-configuration |