node 常用方法 生成密鑰 token驗證 驗證碼生成 (持續更新)


生成密鑰

//生成密鑰
    generateToken(data, expires = 7200) {
        const exp = Math.floor(Date.now() / 1000) + expires
        const cert = fs.readFileSync(path.join(__dirname, '../public/rsa_private_key.pem')) // 私鑰,看后面生成方法
        const token = jwt.sign({data, exp}, cert, {algorithm: 'RS256'})
        return token
    }
#生成rsa_private_key.pem文件命令 ssh-keygen -t rsa -C "xxx@qq.com"

驗證token的方法

// 驗證token的方法
    verifyToken(token) {
        let cert = fs.readFileSync(path.join(__dirname, '../public/rsa_public_key.pem'));//公鑰
        let res = ''
        try {
            let result = jwt.verify(token, cert, {algorithms: ['RS256']}) || {};
            let {exp} = result, current = Math.floor(Date.now() / 1000);
            if (current <= exp) {
                res = result.data || {};
            }
        } catch (e) {
            console.log(e);
        }
        return res;
    }

生成驗證碼

/**
     * 生成驗證碼
     * */
    captcha(){
        var captcha = svgCaptcha.create({
            size: 4,
            fontSize: 40,
            width: 111,
            height: 36,
            color:'red',
            bacground: '#cc9966'
        })
        const _uuid = uuid.v1();
        this.app.redis.set(_uuid, captcha.text.toLowerCase())
        return {
            code:200,
            uuid:_uuid,
            img: captcha.data,
            msg: "操作成功",
        }
    }

# 依賴svgCaptcha插件

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM