1、一個正常項目的思惟導圖
大體分爲三個部分:javascript
①後臺管理系統(須要登陸)java
②網站前臺api
③api接口session
如下爲路由結合控制器進行模塊分組的例子:app
"use strict"; /** * @param {Egg.Application} app - egg application */ module.exports = app => { const { router, controller } = app; router.get("/", controller.home.index); // 後臺 router.get("/admin/user", controller.admin.user.index); router.get("/admin/article", controller.admin.article.index); router.get("/admin/article/add", controller.admin.article.add); router.get("/admin/article/edit", controller.admin.article.edit); router.get("/admin/product", controller.admin.product.index); router.get("/admin/product/add", controller.admin.product.add); router.get("/admin/product/edit", controller.admin.product.edit); // api router.get("/api/user", controller.api.user.index); router.get("/api/product", controller.api.product.index); };
2、後管系統登陸前作認證,須要寫一箇中間件。async
①middleware下新建admin_auth.js,寫入以下內容:網站
module.exports = (option, app) => { return async function auth(ctx, next) { // 若是session存在表示以登陸 繼續訪問,若是session不存在表示沒有登陸,跳轉到首頁 if (ctx.session && ctx.session.userInfo) { await next(); } else { if (ctx.request.url == "/") { await next(); } else { ctx.redirect("/"); } } }; };
②配置中間件,使其生效。url
config.middleware = ["adminAuth"];
③中間件配置完成,可是訪問全部url都會執行中間件,若是須要按需執行,只想在訪問後管的時候執行,則:spa
先註釋掉config>config.default.js中的middleware配置,在router.js中引入中間件並局部註冊,寫在每個理由規則中的第二個參數:code
②還有一種方法就是中間件配置match作匹配。
// add your middleware config here config.middleware = ["adminAuth"]; config.adminAuth = { match: "/admin" };
有'/admin'的路徑都會執行adminAuth中間件。到此實現了一個後管類系統最簡單地模擬認證效果。