扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
JSONXML
成都创新互联公司专注于企业营销型网站、网站重做改版、包河网站定制设计、自适应品牌网站建设、H5高端网站建设、购物商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为包河等各大城市提供网站开发制作服务。
XML: 是一种标记语言,设计的宗旨是传输数据
JSON: 轻量级的数据交换格式
APP接口主要是用JSON输出格式
APP接口输出格式三要素:
1. code::错误码
2. msg:错误码对应的描述
3. data:接口返回的数据
谁有权限调用APP接口,客户端需要带着凭证来调用APP接口
JWT的原理:
服务端认证之后,生成一个JSON对象,返回给用户。后续客户端所有请求都会带上这个JSON对象。服务端依靠这个JSON对象来认定用户身份。
组成: Header, Payload, Signature
1. Header
说一下我是什么
header通常包含了两部分:类型和加密算法
{
"alg": "HS256",
"typ": "JWT"
}
header需要经过Base64Url编码后作为IWT的第一部分。
2. Payload
payload包含了claim, 三种类型reserved, public, private
reserved这些claim是JWT预先定义的,不强制使用,常用的有:
1). iss: 签发者
2). exp: 过期的时间戳
3). sub: 面向的用户
4). aud: 接收方
5). iat: 签发时间
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
payload需要经过Base64Url编码后作为JWT的第二部分。
3. Signature
创建签名使用编码后的header和payload以及一个密匙,使用header中指定的签名算法进行签名
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)
签名是在服务端进行的,客户端并不知道,所以是安全的。
app可以直接发送http请求给服务器,然后php程序处理完之后,输出数据到一个页面,app获得这个页面就可以解析里面的数据。关于这个页面数据交换格式有很多成熟的方式,比如 xml,json。
参考:
根据你的代码,你是用的是POST方法。
要在PHP中整体接收POST数据,有两种方法。
注意,要使用以下两种方法,Content-Type不能为multipart/form-data。
方法一:
使用:
file_get_contents('php://input')
其中,php://input是一个流,可以读取没有处理过的POST数据(即原始数据)。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。
方法二:
使用此方法,需要设置php.ini中的always_populate_raw_post_data值为On。
使用$HTTP_RAW_POST_DATA,包含了POST的原始数据。但这不是一个超全局变量,要在函数中使用它,必须声明为global,或使用$GLOBALS['HTTP_RAW_POST_DATA']代替。
三中接受方式:
$_GET //get过来的数据
$_POST //post过来的数据
file_get_contents("php://input") //接口过来的xml等字符串数据用这个接
这三个方法足以接受任何数据了,具体你还要百度一下用法
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流