Skip to content

Latest commit

 

History

History
48 lines (37 loc) · 1.54 KB

README.md

File metadata and controls

48 lines (37 loc) · 1.54 KB

Express App Server with Authentication

npm version

This is a base express app server that is wired up with sensible defaults, like compression, json support and serving the dist folder statically and also includes basic authentication support. It builds off of the @stanlemon/server package.

This package includes authentication against secure endpoints using JWT. There are endpoints for logging in and signing up, as well as basic user management flows such as updating a profile, verifying a user and resetting a password.

When NODE_ENV=development the server will also proxy requests to webpack.

This library goes well with @stanlemon/webdev. You can see this package, along with [@stanlemon/webdev] in action by using the @stanlemon/app-template package.

import {
  createAppServer,
  asyncJsonHandler as handler,
  NotFoundException,
  LowDBUserDao,
  createLowDb
} from "@stanlemon/server-with-auth";
import  from "./src/data/lowdb-user-dao.js";

const db = createLowDb();
const dao = new LowDBUserDao(db);

const app = createAppServer({
  port: 3003,secure: ["/api/"],
  schemas,
  dao,
 });


// Insecure endpoint
app.get(
  "/",
  handler(() => ({ hello: "world" }))
);

// Secure endpoint
app.get(
  "/api/users",
  handler(() => ({
    users: db.data.users.map((u) =>
      omit(u, ["password", "verification_token"])
    ),
  }))
);