vstring-express-mongodb
v0.0.2
Published
MongoDb Verification String Store for vstring-express
Downloads
4
Readme
vstring-express-mongodb
v0.0.1
MongoDb data store for use with vstring-express
Stores verification strings in a MongoDB database.
Can be used as a model for developing new stores for use with vstring-express
.
Quick Start
- Add
vstring-express
andvstring-express-mongodb
to an Express app...
const express = require('express');
const app = express();
const vstring = require('vstring-express')
const store = require('vstring-express-mongodb')
- Before initializing
vstring
withvstring.intercept(path, app)
, configure the MongoDB data store::
const uri = 'mongodb://localhost:27017';
const db = 'My Verification Strings';
store({uri, db});
- Add the store to
vstring-express
withvstring.use()
:
vstring.use({store}); // configured vstring-express-mongodb data store
- Add
vstring-express
toapp
usingvstring.intercept
: (seevstring-express
docs)
// Install verification string middleware
vstring.intercept('/vstring', app);
- And then configure the rest of the app: (see
vstring-express
docs)
// Add route to initiate email verification request
app.get('/request' (req, res)=>{
const {string} = vstring.new({'verify-email', vparams: {email}});
const link = `http://${req.hostname}/vstring/${string}/complete.html`;
console.log({email: {
to: email,
content: `Click to verify: ${link}`
}});
})
// Add '/complete.html' (end of the URL above)
app.get('/complete.html', (req, res)=>{
res.send('Complete!');
})
// Add handler for our 'verify-email' action:
vstring.handle('verify-email', (req, res)=>{
const {email} = req.vparams;
markEmailVerified(email);
res.redirect(req.url);
})
app.listen(3000);
Configuration Options:
MongoStore({uri, db, collection, user, password})
uri
: MongoDB connection string ("mongodb://hostname:port"
)db
: MongoDB database name (required)collection
: Collection to use (default is'vstring Verification Strings'
)user
: MongoDB username, if requiredpassword
: MongoDB password, if required
©2021 by Gregory Everett Brandon. See LICENSE.