nodejs 服务端token 高效缓存验证

在前后端分离开发过程中,经常涉及权限验证的问题,一般都是采用由服务端根据前端传递的用户名和密码,验证成功后生成token,然后前端在访问服务端接口时,再附带token访问。

如果服务端高频次的解析token,进行内容验证,则会大大降低接口性能,而采用内存或者redis进行合法的token缓存,通过字符匹配进行验证,可以大幅提高效率,同时控制token缓存周期和缓存数量,按天进行更新,减少数据缓存量。

以下为nodejs实现的核心代码,token生成和验证过程,需要自己定义。

//以当天为有效期,缓存合法的token,避免重复解密计算
    var cacheToken = {};
    function TokenToID(_token) {
        let _rt = {success:false,msg:""};
        var _dt = moment(Date.now()).format('YYYY-MM-DD');
        if(cacheToken[_dt]&&(cacheToken[_dt].length<10000)){
            let _item = cacheToken[_dt].find(obj=>obj.token==_token);
            if(_item&&_item.id){
                _rt = {success:true,msg:_item.id};
            }else{
                let tu = new TokenUtil(_token);
                let _res = tu.verifyToken();
            

你可能感兴趣的:(nodejs,arm64,WebGIS,web,nodejs+express,缓存,node.js)