wendyhao-koa-jwt

wendyao koa jwt role weblogin

Usage no npm install needed!

<script type="module">
  import wendyhaoKoaJwt from 'https://cdn.skypack.dev/wendyhao-koa-jwt';
</script>

README

koa framework of identity validation tool; The main module exports 'find' 'add' 'remove' of function

Warning:This module should be behind the [views] in front of the [router]!!! Warning:dependency koa2 koa-views jsonwebtoken

koa=>The middleware

Whether there have access credentials verification visit customers. ///-------------------------------------------------------------- 1.find(option):void option={ name {string} define 'token' //The client token name go {string} define null //No token jump address, For example '/login' url {string||Regular} define null //Do not check the address key {string} define 'g576gt93mymf6omvf8up077ap7r56gsxm9gc1d0f8999iwcm' //key } example:

const koa = require('koa'); const jwt = require('wendyhao-koa-role'); const views = require('koa-views'); const app = new koa();

app.use(views(server.views, { map: { html: 'ejs'} })); app.use(jwt.find({url: [/^/login/], go:'/login' })); app.use('/',(ctx)=>{ ctx.state.user=userInfo; //The user information automatically mount if(ctx.role('admin')){ //Mount the role judging function //When is equal to the 'admin' role,return true } else{ //When is no equal to the 'admin' role,return false } }); ///-------------------------------------------------------------- 2.add(option):{string} token//Returns the encrypted string option={ name {string} define 'token' //The client token name data {object} define null //The user information role {string} define 'anonymous' //user role,The default is anonymous key {string} define 'g576gt93mymf6omvf8up077ap7r56gsxm9gc1d0f8999iwcm' //key time {string||number} define 1800 //The default is 1800 second //When string format //60s,1h,3d,1m,1y //s->second,h->hour,d->day,m->month,y->year //when number unit is second,so 1800=30s,86400=1d=24h } Example:

const Router = require('koa-router');
const jwt = require('wendyhao-koa-role');
const router = new Router();

router.get('/pass', (ctx) => {   
jwt.add(ctx, { data: { userName: 'wendyhao' }, time: '1h' });
ctx.body = 'pass ok !';
});

///-------------------------------------------------------------- 3.remove(ctx,option):void option={ name {string} define 'token' //The client token name go {string} define null //Remove after the jump to specify the routing, For example '/login' } Example:

const Router = require('koa-router');
const jwt = require('wendyhao-koa-role');
const router = new Router();
router.get('/logout', (ctx) => {
    jwt.remove(ctx, { go: '/login' });//User exit, jump to the login page
});