0.4.6 • Published 2 years ago

yoauth v0.4.6

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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.
  • // server.js
    const { Client } = require('yoauth');
    const client = new Client(require('./options.js').options); // 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.
    • Default:
    • "/auth"
  • background: (String) optional: Background for login/signup pages.
    • Default:
    • "#F78D91"
  • buttonBackground: (String) optional: Button background for login/signup pages.
    • Default:
    • "#4664E9"
  • authRedirect: (String) optional: Where the user is redirected when authorized.
    • Default:
    •   "/"
  • loginFile: (Pathlike String) optional: Location of rendered file when logging in.
    • Default:
    •   `${__dirname}/../client/login.hbs` // note: This is relative to node_modules/yoauth/dist/client.ts
  • signupFile: (Pathlike String) optional: Location of rendered file when registering.
    • Default:
    •   `${__dirname}/../client/signup.hbs` // note: This is relative to node_modules/yoauth/dist/client.ts
  • signupCustomFields: (Array) optional: All custom fields that are rendered when registering.
    • Default:
    •   [{
            label: "Full Name",
            name: "fullname",
            type: "string",
            placeholder: "John Doe"
        }]```
  • userModel: (Object) optional: The user model that will be created/searched when authorizing.
    • Default:
    •   {
            name: "user", // name passed to mongo.model(name, Schema, ...args)
            schema: new mongoose.Schema({
                email: String,
                fullname: String,
                password: String,
            }, {
                timestamps: true
            }), // schema passed to mongo.model(name, Schema, ...args)
            args: [] // args passed to mongo.model(name, Schema, ...args)
        }
  • mongoOptions: (Object) optional: Options passed to mongoose.createConnection(uri, options);
    • Default:
    • {}
  • signupCallback: (Function) optional: Function executed on POST at {path}/signup
    • Function Params:
      • req: express.Request
      • res: express.Response
      • options: Object:
        • auth: yoauth.Client
    • Default: See src/local/signup.ts
  • 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.

0.4.6

2 years ago

0.4.5

2 years ago

0.4.4

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.0

2 years ago

0.2.4

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago