An open API service indexing awesome lists of open source software.

https://github.com/maelswarm/tasty-cookie


https://github.com/maelswarm/tasty-cookie

authentication cookie nodejs

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# tasty-cookie

## Quickstart

Download mongodb.

Run ```mongod --dbpath ```

Make a new project, and run the example below.

If you actually end up using this module for development purposes, then use HTTPS!

## Database Structure

database-----collections-----documents

"yourdb"---.
|---"users"---.
| |---"username"
| |---"password"
| |---"cookie"
|
`---"sessions"---.
|---"stamp"
|---"cookie"

## Example

```js

const key = "mylittleponymylittlepony";
const dbpath = "mongodb://127.0.0.1:27017/mydb";
const refresh = 5000; // 5 seconds
const cookielifespan = 60000; // 1 minute

const express = require('express');
const TastyCookie require('tasty-cookie');
const bodyParser require('body-parser');
const authentication = express.Router();
const login = express.Router();
const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

TastyCookie.init(dbpath, key, timeout, cookielifespan);

login.use(function (req, res, next) {
TastyCookie.login(req.body.un, req.body.pw, function(cookie) {
req.body.myCookie = cookie;
next();
});
});

authentication.use(function (req, res, next) {
TastyCookie.authenticate(req.body.myCookie, function(e) {
e ? next() : res.send("Better luck next time!");
});
});

app.post("/auth", authentication, function(req, res) {
res.send('You did it!');
});

app.post("/login", login, function(req, res) {
res.send('Logged in!');
});

app.get("/", function(req, res) {
res.send('Hello World!');
});

app.listen(8080, function() {
console.log("Listening on port 8080!");
});

process.on("SIGINT", function() {
console.log("\nSIGINT Closing App.");
TastyCookie.close();
process.exit();
});
```