代碼地址 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