A simple node token auth system.
const tokenizr = require("@vinval/tokenizr"); // sign({}, timeInSeconds or Date); // back the token for every use and by default one day duration const token = tokenizr.sign({userdata: {...}}); // or back the token for every use and 7 day duration const token = tokenizr.sign({userdata: {...}}, 60 * 60 * 24 * 7); // or back the token for every use and one day end const token = tokenizr.sign({userdata: {...}}, new Date(year,month,day,hour,minutes,...)); // next, for would verify your token and callback your data tokenizr.verify(token); // back data based on token received before while still active // destroy it if it is no longer needed tokenizr.detroy(token); // back data based on token received before while still active
const express = require("express"); const app = express(); const bodyParser = require("body-parser"); const tokenizr = require("@vinval/tokenizr"); const cookier = require("@vinval/cookier"); app.use(bodyParser.urlencoded({ extended: true })); const users = { user1: { password: "12345" }, user2: { password: "67890" }, } const checkUser = (username, password) => { try { if (users[username].password == password) return users[username]; } catch (error) { return false; } return false; } app.get("/", (req,res,next)=>{ const cookies = cookier.parse(req.headers.cookie); const user = tokenizr.verify(cookies.token); if (user) { // do what you prefer with user object } }) app.post("/login", (req,res,next)=>{ const { password, username } = req.body; const user = checkUser(username, password); if (user) { const token = tokenizr.sign(user, 60**2 * 24 * 7); // 1 token duration 1 week // after that, use token how to prefer } else { // user not found } }) app.listen(3000);