首页 > 编程知识 正文

php怎么调用接口,php开放api接口

时间:2023-05-04 12:02:42 阅读:41800 作者:2770

添加token的目的当然是为了api接口的安全性。 等等~~~

首先声明一些验证规则

保护性$请求; //用于参数的处理

保护性$ validate r; //用于数据/参数的验证

保护性$ params; //过滤以满足要求的参数

保护性$ rules=array (

' Login'=array (

' login_join'=array (

' mobile'=['require ',' max'=11],

' password '=' require|length :6,18 ',

请参阅。

请参阅。

);

//*

*构造函数

*初始化检测要求时间、签名等

*/

公共函数_初始化(

parent:_initialize (;

//获取参数

$ this-request=request :3360 instance (;

//验证是否超时

$ this-check _ time ($ this-request-only ([ ' timestamp ' ] ) );

//验证

$ this-check _ token ($ this-request-param );

//验证参数

$ this-params=$ this-check _ params ($ this-request-except ([ ' timestamp ',' token'] );

}

定义返回个数据的方法

//*

* api数据回复

* @param [int] $code [结果代码200:正常/4**数据问题/5**服务器问题]

* @ param [字符串] $ msg [接口返回的提示信息]

* @param [array] $data [接口返回的数据]

* @return [string] [最终json数据]

*/

publicfunctionreturn_msg($code,$msg=',$data=[] ) {

$return_data['code']=$code;

$return_data['msg']=$msg;

$return_data['data']=$data;

EchoJSON_encode($return_data;

die;

}

确认是否超时

//*

*确认请求已超时

* @param [array] $arr [包含时间戳的参数数组]

* @return [json] [检查结果]

*/

publicfunctioncheck_time($arr ) {

if (! isset $ arr [ ' timestamp ' ]|| intval [ $ arr [ ' timestamp ' ] ]=1) {

$this-return_msg(1,' Timestamp error ';

}

if (时间(-intval ) $arr('timestamp ' ) 300 ) ) ) ) ) ) ) )。

$this-return_msg(1,'请求时间输出';

}

}

验证token

//*

验证token (防止数据篡改)

* @param [array] $arr [所有请求参数]

* @return [json] [token验证结果]

*/

publicfunctioncheck_token($arr ) {

/* * * * * * * *来自API的token ***********/

if (! isset($arr('token ) ) )。

$this-return_msg(1,' Token can`t be empty ' );

}

$app_token=$arr['token']; //api传来的token

/********在服务器端访问token ***********/

unset($ARR ) ' Token ' );

$service_token=' ';

Foreach($arras$key=$value ) {

$service_Token.=MD5($value );

}

$ service _ token=MD5 (config (app.log in _ begin ).$ service _ token.config (app.log in _ end ) ) ); //服务器端实时生成的token

/* * * * * * *与token相比,结果***********/

if ($app_token!==$service_token )

$this-return_msg(1,' Token is not correct ' );

}

}

验证参数

//*

*验证参数过滤

* @ param [ array ] $ arr [除time和token以外的所有参数]

* @return [return] [通过参数数组]

*/

publicfunctioncheck _ params ($ arr ) {

/*******获取参数的验证规则***********/

$ rule=$ this-rules [ $ this-request-controller (] [ $ this-request-action ) ];

/*******验证参数,错误***********/

$ this-validate r=new validate ($ rule );

if (! $this-validater-check($arr ) }{

$this-return_msg(1,$this-validater-getError ) );

}

/*******如果正常,则为***********/

返回$ arr;

}

可以登录并保存token,也可以针对每个请求验证token。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。