You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php namespace Api\Model; use Api\Model\BaseModel; /** * * @author star7th */ class ItemTokenModel extends BaseModel {
public function createToken($item_id){ $api_key = md5(md5($item_id.microtime().rand()."showdoc")."srffsrfgr".rand()).rand(); $api_token = md5(md5($item_id.microtime().rand()."showdoc")."rgrhbtgd34".rand()).rand(); $data['item_id'] = $item_id ; $data['api_key'] = $api_key ; $data['api_token'] = $api_token ; $data['addtime'] = time() ; $ret = $this->add($data); if ($ret) { return $ret ; } return false ; }
public function getTokenByItemId($item_id){ $item_token = $this->where("item_id='$item_id'")->find(); if (!$item_token) { $this->createToken($item_id); $item_token = $this->where("item_id='$item_id'")->find(); } return $item_token ; }
public function getTokenByKey($api_key){ $item_token = $this->where("api_key='%s'",array($api_key))->find(); return $item_token ; }
public function setLastTime($item_id){ return $this->where("item_id='$item_id'")->save(array("last_check_time"=>time())); }
//检查token。如果检测通过则返回item_id
public function check($api_key , $api_token){ $ret = $this->getTokenByKey($api_key); if ($ret && $ret['api_token'] == $api_token) { $item_id = $ret['item_id'] ; $this->setLastTime($item_id); return $item_id ; }else{ return false; } }
}
|