使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,请求的来源是什么,有可能是别人非法调用我们的接口,获取数据,因此就要使用安全验证
原理
从图中可以看得很清楚,前台想要调用接口,需要使用几个参数生成签名。
时间戳:当前时间
随机数:随机生成的随机数
口令:前后台开发时,一个双方都知道的标识,相当于暗号
算法规则:商定好的运算规则,上面三个参数可以利用算法规则生成一个签名。前台生成一个签名,当需要访问接口的时候,把时间戳,随机数,签名通过URL传递到后台。后台拿到时间戳,随机数后,通过一样的算法规则计算出签名,然后和传递过来的签名进行对比,一样的话,返回数据。
算法规则
在前后台交互中,算法规则是非常重要的,前后台都要通过算法规则计算出签名,至于规则怎么制定,看你怎么高兴怎么来。
我这个算法规则是
时间戳,随机数,口令按照首字母大小写顺序排序
然后拼接成字符串
进行sha1加密
再进行MD5加密
转换成大写。
他会提供相应接口给你的,具体调用方法就相当于讲求某个链接。act=get_user_list&type=json在这里operate.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式。act=get_user_list&type=json'$ch = curl_init ()curl_setopt ( $ch, CURLOPT_URL, $url )curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 )curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 )curl_setopt ( $ch, CURLOPT_POST, 1 )//启用POST提交$file_contents = curl_exec ( $ch )curl_close ( $ch )try{$url='url地址'
$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, $url)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true)
$page_content = curl_exec($ch)
curl_close($ch)
var_dump($page_content)
}catch (Exception $exception){
var_dump($exception->getMessage())
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)