沒發(fā)現(xiàn)好用的權(quán)限管理的包,如何該自己寫使用token做驗(yàn)證的權(quán)限管理?怎么寫比較好?
歡迎選擇我的課程,讓我們一起見證您的進(jìn)步~~
我的做法是這樣的:
在所有路由規(guī)則前加一個(gè)通用規(guī)則,對(duì)進(jìn)入的請(qǐng)求進(jìn)行過濾,假設(shè)是一個(gè) authenticate()
函數(shù)。
在 authenticate()
函數(shù)中,提取 url query 中的 timestamp
和 token
字段。先判斷一下 timestamp
的合法性,比如與現(xiàn)在時(shí)間相比不能超過5分鐘。然后根據(jù)你的 token 規(guī)則生成用于驗(yàn)證的 token,再和 url 中的 token
做對(duì)比,如果一致則驗(yàn)證通過。
遇到任何不合法的情況,立即 return res.status(400).send({ok: -1, errMsg: "<ERROR MESSAGE>"})
,最后是 next()
對(duì)合法的請(qǐng)求放行。
權(quán)限管理這里是指?如果是登錄校驗(yàn)的話,可以試試passport,這就是一個(gè)token-based
插件,而且還有個(gè)不錯(cuò)的生態(tài)系統(tǒng),基本常見的校驗(yàn)策略都有現(xiàn)成的實(shí)現(xiàn)。
如果指的是各種角色、用戶之類的,可以試試rbac。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)