@ne_fe/koa-auth
v1.2.16
Published
登录验证包
Downloads
7
Readme
简介
koa2中间件,主要作用是校验签名.内部集成了jwt的签名,解签及Koa2和egg中间件
安装&配置
npm i @ne_fe/koa-auth -S
使用
引用koa-auth
const { jwt,utils } = require('@ne_fe/koa-auth');
use jwt.sign
jwt.sign(payload[,exp]);
|参数|下级参数|类型|是否必传|说明| |--|--|--|--|--| |payload||Object|true|加密的主体| ||_id|String|true|用户唯一id| ||ip|String|true|用户ip地址,可以使用 utils.getIp(ctx)得到| ||*|Any|false|自定义参数| |exp||String|Number|false|失效时间 默认为30m|
详细的时间参数请见jsonwebtoken
use jwt.verify
jwt.verify(token);
|参数|类型|是否必传|说明| |--|--|--|--| |token|String|true|签名后的字符串|
use jwt middleware
Koa中中间件用法
app.use(jwt.middleware(config[,callback]));
// 如果签名成功,则会在ctx增加user属性--> ctx.user
|参数|下级参数|类型|是否必传|说明| |--|--|--|--|--| |config||Object|true|中间件的配置信息| ||match|String|Array|RegExp|false|url黑名单,只有匹配该名单的url才需要校验,默认'/',即所有url都需要验签| ||except|String|Array|RegExp|false|url白名单,匹配该名单的url不需要校验,如果 "match"和"except"同时存在,则只生效match| ||ip|Boolean|false|校验时,是否需要匹配IP,默认true| |callback||Function|false|在解签成功后,会触发回调函数,如果回调函数返回值为false,则会抛出401错误;callback中可以放置自定义校验规则|
Egg用法
在 middleware 文件中增加auth.js(文件名可以任意命名)文件
const { jwt } = require('@ne_fe/koa-auth');
module.exports = jwt.middleware;
如果想添加回调函数,则需要转换下
module.exports = options=>{
return jwt.middleware(options,callback);
}
在 config.default.js 文件中
这里(auth)名称要和middleware中的(auth.js)文件名一样,当然你也可以使用任何命名,只要保持一致即可
config={
middleware:['auth'...],
// 这里的配置和koa中间件配置一致
auth:{
match:'',
except:'',
ip:true,
},
}
将老代码改为使用koa-auth
在controller/serverAdmin.js文件中
postLogin方法内,修改签名方式
const { jwt, utils } = require('@ne_fe/koa-auth');
....
const token = jwt.sign({
_id: admin._id,
ip: utils.getIp(ctx,{xRealIp:false}),
}[,exp]);//在签名的时候,如果想延长签名失效时间,可以传入exp参数