yoAuth
An easy to use authentication system that can easily be built in to your Express + HBS web apps. Currently only supports local authentication, however will hopefully support Google/Apple/Facebook/etc auth in the future.
npm i --save yoauth
Client
Creating a client
- Import the
Client constructor from yoauth, then create an instance of it and pass in an object for the client options.
-
const { Client } = require('yoauth');
const client = new Client(require('./options.js').options);
const express = require('express');
const app = express();
client.configureServer(app);
app.get('/', client.ensureAuth, (req, res) => {
res.render('dashboard', {user: req.user});
});
app.listen(3000);
Client options
- mongoUri: (String)
required: URI for connecting to MongoDB.
- sessionSecret: (String)
required: Secret for express session.
- path: (String)
optional: Router location of login/signup pages/files/routes.
- background: (String)
optional: Background for login/signup pages.
- buttonBackground: (String)
optional: Button background for login/signup pages.
- authRedirect: (String)
optional: Where the user is redirected when authorized.
- loginFile: (Pathlike String)
optional: Location of rendered file when logging in.
- signupFile: (Pathlike String)
optional: Location of rendered file when registering.
- signupCustomFields: (Array)
optional: All custom fields that are rendered when registering.
- userModel: (Object)
optional: The user model that will be created/searched when authorizing.
- Default:
-
{
name: "user",
schema: new mongoose.Schema({
email: String,
fullname: String,
password: String,
}, {
timestamps: true
}),
args: []
}
- mongoOptions: (Object)
optional: Options passed to mongoose.createConnection(uri, options);
- signupCallback: (Function)
optional: Function executed on POST at {path}/signup
- loginCallback: (Function)
optional: Function executed on POST at {path}/login
- Function Params:
req: express.Request
res: express.Response
options: Object:
auth: yoauth.Client
passport: passport
- Default: See src/local/login.ts
Licensed under the MIT license.