我正在使用 express 和 mongoose 設定我的 API 路由。這是進行用戶身份驗證的安全方法嗎?有什么方法可以讓用戶以某種方式注入另一個 Firebase user.uid 來獲取管理員用戶的令牌(我正在使用 Firebase 進行身份驗證)?
后端:
myRoute.route('/sample/:id').delete((req, res, next) => {
var user = req['currentUser'];
UserModel.findById(user.uid, (error, data) => {
if (error) {
return next(error)
} else {
user = data;
if (user.admin) {
SampleModel.findByIdAndRemove(req.params.id, (error, data) => {
if (error) {
return next(error)
} else {
res.status(200).json({
msg: data
})
}
})
} else {
res.status(403).send('You are not authorised!');
}
}
})
})
async function decodeIDToken(req, res, next) {
if (req.headers?.authorization?.startsWith('Bearer ')) {
const idToken = req.headers.authorization.split('Bearer ')[1];
console.log(idToken);
try {
const decodedToken = await admin.auth().verifyIdToken(idToken);
req['currentUser'] = decodedToken;
} catch (err) {
console.log(err);
}
}
next();
}
前端:
const user = auth.currentUser;
const token = user && (await user.getIdToken());
axios.delete(`${this.baseApiURL}/sample/${id}`, { headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`,
}
}).then(() => {
console.log("Done");
})
uj5u.com熱心網友回復:
這是進行用戶身份驗證的安全方法嗎?
是的,只需驗證 Firebase ID 令牌就足夠了。
有什么方法可以讓用戶以某種方式注入另一個 Firebase user.uid 來獲取管理員用戶的令牌
創建 JWT 非常簡單,但您需要知道 Firebase 用于簽署令牌的確切簽名密鑰,否則verifyIdToken()會引發錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/453969.html
