以下仅供参考:
如果rest端要自己维护api_key,类似存储在数据库里,就分发(授权)给客户端某个api_key,然后客户端用api_key和一些其他条件如时间戳+签名去rest端换取一个token,最后客户端用这个token和rest端进行交互,可以参考下微信的oauth鉴权.
如果rest端不维护api_key,也就省去分发(授权)客户端api_key的工作,此时客户端用传递的参数和其他条件如时间戳+签名去rest端换取一个token..同上
上述所说的token都是唯一的,对于同一个客户端的请求而言,下次刷取token的时候,之前产生的token作废;
token本身应该要维持在rest端,也应该有一个过期的限制;
(参数)+(api_key)+时间戳 通过加密算法(如sha2)生成签名,rest端同逻辑校验签名是否合法一般就能卡掉一大部分的访问,
至于api_key或者token放在哪里,一般无状态访问比较常见是在head里(常见如angularjs项目),这里我觉得随意,因为只要被拦截都可见,只是head可以放比较多的东西用来障目就是了.
当然,如果正在用的token被拦截,同样也是可以随意访问的,因此可能要求https协议加证书应该会更牢固点(没试过);
一般就这样,再高的我也不懂了,如果陈述有什么问题,者有什么看法,也还请不吝赐教~
function nTabs(thisObj,Num){
if(thisObj.className == "active")return;
var tabObj = thisObj.parentNode.id;
var tabList = document.getElementById(tabObj).getElementsByTagName("li");
for(i=0; i