主要技術棧:nuxt.js + koa + mongodb + redis
本地使用者登入,第三方登入都需要許可權認證,許可權認證的思路也極其簡單,不外乎就是登入,登出,路由守護三部分。
官網:
1、安裝
koa2中使用的是koa-passport
這個包。
本地驗證用的是passport-local
這個策略
npm install -s koa-passport
2、配置
這裡使用passport-local
策略(本地許可權認證)為例子。
因為passport使用之前要定義策略及序列化與反序列化操作,所以把passport
的配置及策略寫到乙個檔案passport.js
。
//passport.js
import passport from 'koa-passport'import localstrategy from 'passport-local'import usermodel from '../../dbs/models/users' //
mongodb資料庫
//新建策略
passport.use(new localstrategy(async function
(username, password, done)
let result =await usermodel.findone(where)
if (result != null
) else
} else
}))//
序列化ctx.login()觸發
passport.serializeuser(function
(user, done) )
//反序列化
passport.deserializeuser(function
(user, done) )
export
default passport
3、入口載入
import passport from './inte***ce/utils/passport'
4、後端路由的編寫
router.post('/signin', async (ctx, next) =>} else
return
ctx.login(user)
} else}}
})(ctx, next)
})
router.get('/exit', async (ctx, next) =>} else
}})
router.get('/getuser', async (ctx) => =ctx.session.passport.userctx.body =
} else
}})
login () ).then(() =>
else
} else
settimeout(
function
() , 1500)
})}
到這裡,本地許可權認證基本完成了,post請求/signin
並且提交表單user
,和password
即可登入乙個使用者。
5、總結
passport使用session來維護會話。對於token驗證的來說,並不能用,所以要實現token驗證的話還需要另外編寫策略才行。
更多詳細用法,請自行到官網檢視文件。
官網:
使用koa generator生成koa2專案
1 新建專案目錄,準備在 建立專案和寫 就在 建立即可。2 開啟命令列視窗。安裝koa generator,安裝命令為 npm install g koa generator 全域性安裝 3 使用koa generator生成koa2專案,輸入命令 koa2 koa demo koa demo為 專...
使用 koa2 快速搭建 mock server
在前後端分離式開發中,經常遇到需要自己 mock 資料測試介面的情況,下面是一種使用 koa2 快速搭建 mock 服務的實現方式。首先全域性安裝 koa generator npm install g koa generator 在合適位置上初始化目錄結構 koa2 mock server生成的目...
koa2使用ejs模板引擎
在koa中使用ejs並不需要像在node中一樣安裝了還要引用,只需要npm了就行,同時還需要安裝koa views模組。如 const views require koa views 對ejs模板進行配置 方法一 extension ejs 指定我們使用的模板為ejs 通過方法一配置ejs模板的時候...