Api_Tokenphp
首先须要知道API是什么?数据库
API(Application Programming Interface)即应用程序接口。你能够认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接口。而咱们在这里要谈论的,是做为一家公司如何跟外界进行交互。从另外一个角度来讲,API 是一套协议,规定了咱们与外界的沟通方式:如何发送请求和接收响应。api
API的特色:restful
职责mvc
保持接口访问的隐蔽性和有效性,保证接口只有可信任的来源才能够访问。ui
模式:加密
如今的接口基本是mvc模式,URL基本是restful风格,URL大致格式以下:设计
http://www.api.com/模块名/控制器名/方法名?参数名1=参数值1&参数名2=参数值2
生成规则参考以下:rest
$api_token = md5 ('模块名' + '控制器名' + '方法名' + '时间' + '加密密钥');
例子code
<?php //获取GET参数值 $module = $_GET['module']; $controller = $_GET['controller'] $action = $_GET['action']; $client_id = $_GET['client_id']; $api_token = $_GET['api_token']; //根据客户端传过来的client_id,查询数据库,获取对应的client_secret $client_secret = getClientSecret($client_id); //服务端从新生成一个api_token $api_token_server = md5($module . $controller . $action . date('Y-m-d', time()) . $client_secret); //客户端传过来的api_token与服务端生成的api_token进行校对,若是不相等,则表示验证失败 if ($api_token != $api_token_server) { exit('access deny'); //拒绝访问 } //验证经过,返回数据给客户端 ?>
User_Token
职责
保护用户的用户名及密码屡次提交,以防密码泄露。
模式
登陆成功后,服务端返回一个user_token,生成规则参考以下:
$user_token = md5('用户的uid' + 'Unix时间戳' + '证书私钥')
服务端生成user_token后,返回给客户端(本身存储),客户端每次接口请求时,若是接口须要用户登陆才能访问,则须要把 user_id与user_token传回给服务端,服务端接受到这2个参数后,须要作如下几步: