代码地址 github.com/MoceptWeb/e… 看以前肯定至少了解了egg的文档了, 否则看下面是浪费时间哈;本人只写了重点须要注意的地方!不对的地方请多多指教javascript
若是代码还不完善还不想发布,能够直接在项目文件中 npm link npm包目录文件夹java
name和eggPlugin字段node
"name": "@node/egg-passport-jyb", // 包名
"eggPlugin": {
"name": "passportJyb" 这里是在egg中真正用到的name
},
复制代码
config.passportJyb = {
'menu_code': 'loan_manage'
};
复制代码
exports.passportJyb = {
enable: true,
package: '@node/egg-passport-jyb'
};
复制代码
我的建议extend中的方法尽可能当前插件相关的加前缀, 防止互相干扰mysql
或者挂一个你的对象,方法在它上面便可,如 app.passport.xx, 例如app启动时候实例化一个单例git
async passportMysqlConnect() {
const portalConfig= this.app.config['passportJyb']
let mysqlConnect = null;
if(portalConfig.userDBClient) {
mysqlConnect = this.app.mysql.get(portalConfig.userDBClient)
} else {
mysqlConnect = this.app.mysql
}
if(!mysqlConnect) {
this.ctx.logger.error('数据库链接数据');
}
return mysqlConnect;
}
复制代码
则是一些数据相关的操做github
固然能够加入配置项目, 指定在哪一个外部项目中的middleware以后, 看各项目需求sql
module.exports = app => {
// 将 static 中间件放到 bodyParser 以前
const index = app.config.coreMiddleware.length;
// const index = app.config.coreMiddleware.indexOf('bodyParser');
// assert(index >= 0, 'bodyParser 中间件必须存在');
app.config.coreMiddleware.splice(index, 0, 'passportJybAuth');
};
复制代码
配置noAuth正则url 在passportJybAuth中间件中 能够无需auth便可请求, 插件尽可能可拓展数据库
以及登陆后和单点(被动)登陆后的跳转地址的配置npm