getIdToken()
检索当前登录的用户JWT。例如,您的客户:
if (firebase.auth().currentUser) {
const token = await firebase.auth().currentUser.getIdToken();
// do something with token - e.g. send as a header with your api requests
}
然后,通过admin sdk在后端代码上检索令牌头并验证令牌和用户是否存在,例如,对于节点admin sdk,ExpressJS中间件可能类似于:
module.exports = async function (req, res, next) {
const { token } = req.headers;
if (!token || !token.length) return next();
// validate JWT and pluck user id
const { uid } = await firebase.auth().verifyIdToken(token);
// find the user based on id
const user = await firebase.auth().getUser(uid);
if (user) {
// keep an instance of the User class on this request
req._user = user;
// raw serializable version of the user for request debugging?
req.user = user.toJSON();
}
// TODO if (!user) res.send('Unauthorised');
return next();
};
https://rnfirebase.io/docs/v5.x.x/auth/reference/User#getIdToken