Skip to main content

auth

Overview of the auth module in the @serverless-stack/node package.

import { ... } from "@serverless-stack/node/auth"

The auth module has the following exports.


Types

Types to help you define the shape of your function arguments.


SessionTypes

A type interface you can extend to define the auth session types.

declare module "@serverless-stack/node/auth" {
export interface SessionTypes {
user: {
userID: string;
};
}
}

Methods

Methods that you can call in this module.


Session

The Session module can then be used to create an encrypted session token that'll be passed to the client.

import { Session } from "@serverless-stack/node/auth";

Creates a JWT session token with the provided session information, and returns a 302 redirect with an auth-token cookie set with the jwt value.

Session.cookie({
type: "user",
properties: {
userID: "123",
},
redirect: "https://app.example.com/",
});

parameter

Creates a JWT session token with the provided session information, and returns a 302 redirect with a query parameter named token set with the jwt value. In subsequent requests the client will pass in this token, authorization: Bearer <token>.

Session.parameter({
type: "user",
properties: {
userID: "123",
},
redirect: "https://app.example.com/",
});

Handlers

The handlers can wrap around your Lambda function handler.


AuthHandler

The AuthHandler provides a function that can be used to implement various authentication strategies. You can read more about it over on the auth docs.

import { AuthHandler } from "@serverless-stack/node/auth";

export const handler = AuthHandler({
providers: {
link: LinkAdapter(...)
}
});

Options

  • providers — An object listing the providers that have been configured.

Hooks

The hooks are functions that have access to the current invocation.


useSession

This hook returns the current session object.

import { useSession } from "@serverless-stack/node/auth";

const session = useSession();

if (session.type === "user) {
console.log(session.properties.userID);
}

The useSession hook will then decrypt and parse this token and return with the previously defined session type.