zoukankan      html  css  js  c++  java
  • 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,
                 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插件
    

      

    愿你走出半生,归来仍是少年
  • 相关阅读:
    java修改应用程序标题栏
    电动双轮车
    Oracle执行计划相关(待补充)
    SQL中IN和EXISTS用法的区别
    union all与union all
    equals与hashcode
    文件上传的整个流程
    adwords与adsence
    struts2文件上传大小
    为什么是UUID做主键
  • 原文地址:https://www.cnblogs.com/yz-blog/p/14314080.html
Copyright © 2011-2022 走看看