koa2 使用passport許可權認證

2022-09-12 04:27:11 字數 1987 閱讀 7686

主要技術棧: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.user

ctx.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模板的時候...