How It Works
Toggle navigation
How It Works
Home
About Me
Archives
Tags
branch云输入的设计
2016-11-24 07:18:00
365
0
0
ochapman
#体验流程 1. 在网页编辑内容 2. 点击生成二维码 3. branch应用扫描二维码,发布 #评价 整个流程无需用户登录,简洁方便。 先"猜想"一下设计方案 #猜想方案 1. 生成二维码的时候,后台生成一个标识码,例如dk58359d45b46d8,并将用该标志码拼接为一个url。 如 ``` http://branchapp.net/draft/detail/dk58359d45b46d8 ``` 将内容上传到url上。 生成的二维码内容为"branch_app_qrcode:dk58359d45b46d8" 2. branch应用端扫描到二维码后,解析后,拼接为上面提到的url,应用的发布接口读取url的内容,并发布 3. 发布完成后,后台删除掉url的内容。 #实际实现 http://branchapp.net/create/js/create.js ``` $('#qrcode_button').click(function () { url = 'http://branchapp.net/create/draft' draft_key = uniqid('dk'); brief = $('#editor').val(); $.post(url, { 'draft_key': draft_key, 'brief': brief, 'images': upload_images.join('|') }, function (res) { if (res.err == 0) { location.href = 'http://branchapp.net/draft/detail/' + draft_key } else { $('#success').show(); } }); }) ``` 从上可以看到,标志码是从前端生成的,并不是后台。 uniqid是使用下面的版本 http://phpjs.org/functions/uniqid/ 看上面的代码上uniqid是伪随机数和时间为种子。是个小缺陷,如果请求足够多的话,理论上那么冲突是难免的。 #方案的缺陷 1. 没有频率控制(如验证码),提交请求容易被攻击 2. uniqid简单,内容容易被穷举
Pre:
一种梳理二进制局部变量的方法
Next:
小试分答数据挖掘
0
likes
365
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Table of content