首页 > 解决方案 > 用户使用node js和firebase登录时如何增加令牌的到期时间

问题描述

实际上,当用户登录时,我为该用户创建了一个令牌,但该令牌在 firebase 1 小时后过期。然后再次用户必须再次登录。

所以我想要实现的是在令牌过期后,会自动为用户生成一个新令牌,这样他/她就不会一次又一次地登录,他/她将在应用程序上停留更长的时间。

这是我在用户登录时生成令牌的代码:-

exports.login = (req, res) => {
    const user = {
        email: req.body.email,
        password: req.body.password
    };

    const { valid, errors } = validateLoginData(user);

    if (!valid) return res.status(400).json(errors);

    firebase
        .auth()
        .signInWithEmailAndPassword(user.email, user.password)
        .then((data) => {
            return data.user.getIdToken();
        })
        .then((token) => {
            return res
                .status(302)
                .json({ message: "successfully logged in", data: [{ token: token }] });
        })
        .catch((err) => {
            console.error(err);
            if (err.code === "auth/wrong-password") {
                return res
                    .status(403)
                    .json({ message: "Wrong credentials, please try again" });
            } else return res.status(500).json({ error: err.code });
        });
};

请帮忙。提前致谢

标签: javascriptnode.jsfirebase-authentication

解决方案


推荐阅读