从cookie中读取uin需要注意的问题

问题的产生:

用户登录站点后,系统会在cookie植入对应的uin,其值的形式是oxxxxxxxxxx,xxx是对应的qq号码,如果不满足10位,则前面补充0,那么前端是可以通过js从cookie读取对应的qq号码的。

之前的读取方法:

/* * 获取uin */ function getUin() { var uin = QQVIP.cookie.get("uin"); if(uin == null || uin =='' || uin.length < 7) { return ''; } try { uin = QQVIP.string.trim(uin.substr(2)); return uin; }catch(e){ return ''; } };

很明显,该方法是从uin的第二位开始读取认为是qq号码,对9位号码,该API是ok的,如uin=o0123456789,则可以读取出对应的uin,

但对于22亿的10位号码,则明显将会被截断。

那么新的解决方法是什么?

/* * 获取uin */ function getUin() { var uin = QQVIP.cookie.get("uin"); if(uin == null || uin =='' || uin.length < 7) { return ''; } try { //注意,该方法是从cookie中读取qq号码,对于少于10位的qq号码, //前面是补0,对于10位的号码,则前面没有补0,使得oxxxx,其中xxx保 //留10位,所以统一从第二位读取qq号码是有问题的,正确的 //是:parseInt(QQVIP.string.trim(uin.substr(1)),10); //注意调用parseInt函数,第二个参数必须输入10,以表示是按照10进制 //进行转换,否则以0开始的数字串会被认为是按八进制进行转换。 uin = parseInt(QQVIP.string.trim(uin.substr(1)),10); return uin; }catch(e){ return ''; } };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值