1.0.2 • Published 2 years ago

@aftabmk/cookie v1.0.2

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

Installing

Using npm:

$ npm i @aftabmk/cookie

Using bower:

$ bower install @aftabmk/cookie

Using yarn:

$ yarn add @aftabmk/cookie

Using pnpm:

$ pnpm add @aftabmk/cookie

Documentation

Functions

setCookie

const cookie : setCookie(String,String,Number,Number)

filterCookie

const bool : filterCookie(String,Number,String)

Example

setCookie inputs

Name

const cookie = setCookie('kizhissery','-',7,5)
/*{
    cookie:'kizhissery-101010000.........
    here input is Kizhissery
}*/

Symbol

const cookie = setCookie('kizhissery','=',7,20)
/*{
    cookie:'kizhissery-101010000.........
    here input is Kizhissery
}*/

Key

const cookie = setCookie('aftab','-',7,20)
/*{
    cookie:'kizhissery-101010000.........
    here secret key is 7, it can be any +ve integer Only, decimal and -ve integer will not function
}*/

Repeat

const cookie = setCookie('aftab','-',7,5)
/*{
    cookie:'kizhissery-101010000.........
    here length of cookie detemined length here it is 5
    cookie:'kizhissery-101010000.........*4
    here length of cookie detemined length here it is 20, if you need bigger cookie value , should be more than 5 and less than 20 for optimal result
}*/

result

const cookie = setCookie(name,symbol,key,length)
/*{
    cookie:'kizhissery-101010000.........
    here length of cookie detemined length here it is 5
    cookie:'kizhissery-101010000.........*4
    here length of cookie detemined length here it is 20, if you need bigger cookie value , should be more than 5 and less than 20 for optimal result
}*/

filterCookie inputs

result

const filter = filterCookie(name,key,cookie)
/*{
    cookie is the the derived value of the above function "setCookie" which is passed to filter function.
    Note the name and key of setCookie must match the inputs of filterCookie.
}*/

Starter Code

example 1

const { setCookie , filterCookie } = require('@aftabmk/cookie')

const cookie = setCookie('aftab','=',30,5)
const filter = filterCookie('aftab',30,cookie)

console.log({cookie},{filter})

example 2

// imports
const express = require("express");
const cookieParser = require('cookie-parser')
const { setCookie , filterCookie } = require('@aftabmk/cookie');
//setting up express
app.use(ex.json())
app.use(ex.urlencoded({ extended: true }))
//auth
function Auth(req, res, next)
{
    if(!req.headers.cookie) return res.status(403).send('403 access forbidden')
    if(filterCookie('user',77,req.headers.cookie))
    // name was set to user and key to 77 at setCookie function
    // filterCookie return true
    // so it will lead to next() , if authentication fails it will send 403 to unauthorised api/json scrapper
    // for true return /api route and access the data from those route
        {
            next();return
        }
        else
        {
            res.status(401).send([{'status':401,'description':'Invalid certificate'}]);
        }
}
// the user in front end redirect to setCookie end point to initialise setCookie function to set cookie inside cookie-parser option
app.get(`/setCookie`, async (req, res) => 
{ try 
    { 
        return res.status(202)
        .cookieParser( setCookie('user','=',77,20) , cookieOptions)
        // here name is user , symbol is '=' , secret key = 77 and length = 20
        // cookieOption { sameSite: 'strict', path: '/', expires: new Date(Date.now() + 900000), httpOnly: true }
        // IMPORTANT htmlonly to true
        .send('User cookie is  set') 
    } 
    catch (err) 
    { 
        return res.status(500).json({ err: err.toString() }) 
    } })

// Express router import whereapi are stored hence we introduce Auth middleware , to prevent unwanted scrapers
app.use('/api',Auth,api)


app.listen(port, () => { console.log(`running on port http://localhost:5000`) })