0
我有一個認證中間件,用於解密標頭中的令牌,並將userId
從令牌傳送到req.userId
。否則,如果令牌不存在或無效,則會引發錯誤。Restify:調用中間件中的中間件
我這樣稱呼它在我需要的認證路線:
server.get('/api/somecall', authMiddleware, callService.somecall);
現在我也會有一定的路線,將其params攜帶的用戶ID,像這樣:
server.get('/api/somecall/:userId', callService.somecall);
這裏:userId
可以是一個Mongoose對象ID或者只是me
。
所以我想寫另一箇中間件,它將被稱爲所有路線,尋找特定的params
像userId
和/或adminId
。如果它們的值等於me
,我想確保authMiddleware
自動起作用,PLUS用登錄的用戶ID替換me
,以便callService.somecall
在收到Mongoose對象ID時處理其內部的邏輯。
有兩個問題我面對:
- 我如何在這之前
server.get(...)
稱爲中間件req.params.userId
? - 假設,如果我得到
req.params.userId
不知何故,如何讓我的中間件:- 執行一些條件(檢查是否
req.params.userId === 'me'
) - 然後調用
authMiddleware
讓我得到req.userId
從令牌,並 - 然後執行多個動作(更換
req.params.userId = req.userId
- 然後調用
next()
繼續。
- 執行一些條件(檢查是否
謝謝,其實我修改了'authMiddleware',也做了'PARAMS '它裏面的東西。 –