ne-koa-auth

1.2.13 • Public • Published

koa-auth handbook

Koa用法

use jwt

const koaAuth = require('ne-koa-auth');
const {jwt,utils} = koaAuth;

use jwt sign

jwt.sign(payload[,exp]);
    --payload: require,加密的主体
        --_id: require,用户唯一id
        --ip:  require,用户ip地址,例如:ip可以使用 utils.getIp(ctx)得到
        ... 其他任意参数
    --exp: unrequire,失效时间 默认为30m,你可以传入字符串或者数字来规定失效时间

use jwt verify

jwt.verify(token);
    --token: require,签名字符串

use jwt middleware

app.use(jwt.middleware(config[,callback]));
    --config: require,koa config
          --match:xx, unrequire,匹配xx则需要验签,可以为String,Array,RegExp,默认'/'
          --except:xx, unrequire,不匹配xx则需要验签,可以为String,Array,RegExp,如果 "match"和"except"同时存在,则只生效match
    --callback: unrequire 在解签成功后,会触发回调函数,如果回调函数返回值为false,则会抛出401错误
如果签名成功,则会在ctx增加user属性--> ctx.user

Egg用法

在 middleware 文件中增加auth.js(文件名可以任意命名)文件

    'use strict';
    const { jwt } = require('ne-koa-auth');
    module.exports = jwt.middleware;

如果想添加回调函数,则需要小小的改变
    module.exports = options=>{
      return jwt.middleware(options,callback);
    }

在 config.default.js 文件中增加配置

这里(auth)名称要和middleware中的(auth.js)文件名一样,当然你也可以使用任何命名,只要保持一致即可

config={
    middleware:[其余中间件,'auth'],
    auth:{
        match:xx, unrequire,匹配xx则需要验签,可以为String,Array,RegExp,默认'/'
        except:xx, unrequire,不匹配xx则需要验签,可以为String,Array,RegExp,如果 "match"和"except"同时存在,则只生效match
    },
    ip:false  // 不校验ip
}

在controller/serverAdmin.js中的serverAdmin.js中的postLogin方法内
修改签名方式
const { jwt, utils } = require('ne-koa-auth');
....
const token = jwt.sign({
  _id: admin._id,
  ip: utils.getIp(ctx,{xRealIp:false}),
}[,exp]);//在签名的时候,如果想延长签名失效时间,可以传入exp参数

Readme

Keywords

none

Package Sidebar

Install

npm i ne-koa-auth

Weekly Downloads

7

Version

1.2.13

License

ISC

Unpacked Size

10 kB

Total Files

8

Last publish

Collaborators

  • ne.fe