【发布时间】:2018-11-15 15:37:56
【问题描述】:
我正在尝试在快速服务器中实现中间件,该服务器在传入请求上设置自定义 uid/admin 标头。这个修改后的请求将在中间件之后使用,以查看经过身份验证的用户/管理员是否正在访问该特定资源。
要为客户端执行此操作,我只需获取 Authorization 标头上的令牌并将其输入 firebase 管理 api 的 verifyIdToken 方法。如果存在 uid,我设置标题。例如:
app.use((req, res, next) => {
/* get rid of headers sent in by malicious users. */
delete req.headers._uid;
try {
const token = req.headers.authorization.split(' ')[1];
_dps.fb_admin.auth().verifyIdToken(token).then(claims => {
if (claims.uid) { req.headers._uid = claims.uid; }
next();
}).catch(err => next());
} catch(err) { next(); }
});
两个问题:
1) 作为在另一台服务器上拥有服务帐户的管理员,我如何向该服务器发送请求,以便该服务器可以确定管理员发送了请求?
2) 我如何识别此服务器上的管理员?
【问题讨论】:
标签: node.js firebase express firebase-authentication firebase-admin