@prsm/express-session-auth
v1.6.4
Published
## Requirements
Downloads
65
Readme
express-session-auth
Requirements
express-session
: https://github.com/expressjs/sessioncookie-parser
: https://github.com/expressjs/cookie-parser- TypeORM
express-session-auth
exports entities (User
,UserReset
,UserRemember
,UserConfirmation
) that you need to include in your datasource for migration/sync purposes.
Quickstart
Wherever you create your express application, include the auth middleware and pass in your TypeORM datasource.
import express from "express";
import { createServer } from "node:http";
import auth from "@prsm/express-session-auth";
import datasource from "./my-datasource";
const app = express();
const server = createServer(app);
// the auth middleware needs your datasource instance
app.use(auth({ datasource }));
Here's an example TypeORM datasource:
// my-datasource.ts
import {
User,
UserConfirmation,
UserRemember,
UserReset,
} from "@prsm/express-session-auth";
import { DataSource } from "typeorm";
const datasource = new DataSource({
type: "mysql", // express-session-auth supports mysql, postgres and sqlite (others not tested)
host: process.env.DB_HOST,
port: process.env.DB_PORT ? +process.env.DB_PORT : 3306,
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
entities: [
User,
UserConfirmation,
UserRemember,
UserReset,
/* the reset of your entities here */
],
});
export default datasource;
Environment variables and their defaults:
HTTP_PORT=3002
AUTH_SESSION_REMEMBER_DURATION=30d
AUTH_SESSION_REMEMBER_COOKIE_NAME=prsm.auth.remember
AUTH_SESSION_RESYNC_INTERVAL=30m
AUTH_MINIMUM_PASSWORD_LENGTH=8
AUTH_MAXIMUM_PASSWORD_LENGTH=64
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=toor
DB_NAME=prsm
Because this middleware augments the Request
object by adding an auth
property, you will want to add the following to your tsconfig.json
so that your language server doesn't flag references to req.auth
as an error:
{
"include": [
"src",
"node_modules/@prsm/express-session-auth/express-session-auth.d.ts"
]
}