本文目录一览:
- 1、普及一下知识php如何做桌面客户端
- 2、用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
- 3、客户端怎么调用服务端的php接口
- 4、PHP Guzzle接口请求库应用
- 5、PHP---APP接口02
- 6、php 接口判断客户端后返回值的获取
普及一下知识php如何做桌面客户端
WinBinder 是一种开源的 PHP 动态扩展(.dll) ,也算是脚本编程语言,为php 在window 下的开发提供用户界面UI ,它负责调用window 的API 接口。其运行 PHP 程序员轻松地使用 PHP 创建 Windows 应用程序。当然,这个只能在 Windows 下运行。本身是一个软件,php 程序员可以通过这个软件开发界面。官方网站说得很不错,无须编译php. 只要保存文件扩展为.phpw ,然后用 php.exe 打开就可以运行。具体开发感受如何,要试验一下才知道。初步感觉不会比php-gtk 差。
可以在此处下载到 WinBinder 的包 , 下那个 .zip 包,一般不需要用 .exe 的。下完之后解压缩,将 winbinder_xxx\PHP\PHP4\ext 目录下的(如果用的是 PHP5 则复制 PHP5 目录下的) php_winbinder.dll 复制到 PHP 扩展目录下,一般在 C:\php\extensions ,然后修改 php.ini 文件,加上:
extension=php_winbinder.dll
然后到打开命令行(cmd ),进入到 winbinder_xxx\Code\Samples 目录下,运行:
C:phpcliphp.exe manytests_main.phpw
这样就可以看到 Windows 窗口了,测试用的例子很多,可以都试试。我试了一下中文,还是支持得不错的,想想也是,WinBinder 是通过扩展的方式,加载到 PHP 中,其调用的都是 Windows 的 APIs 。实际上可以将 WinBinder 分为两层,一层是底层,叫 API 层,作为 PHP 扩展直接连接 Windows 的 API ,并为第二层(高层,叫 PHP 层)提供统一的调用接口。
你以为php只能做桌面应用?错移动应用也照样拿下。PHP for Android让你用你最熟悉的php开发android软件。
总之,php的插件工具虽然可以实现开发桌面客户端,但是并不建议,因为不方便而且开发效率极低。
用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
1.请求头里带用户username和password,到服务器端做验证,通过才继续下边业务逻辑。
优点:防止了服务器端api被随意调用。
缺点:每次都交互用户名和密码,交互量大,且密码明文传输不安全。
2.第一次请求,要求username和password,验证通过,种cookie到客户端,app保存cookie值。
每次请求带上cookie。
点评:和pc上浏览器认证的原理一样了。
以上两点,只有注册用户,才能有权访问业务逻辑,而app有大量的不需要注册数据api。
客户端怎么调用服务端的php接口
用php的CURL,post或者get数据到服务端处理,服务器端返回json格式的数据
PHP Guzzle接口请求库应用
Guzzle是一个PHP的HTTP客户端,用来发送接口请求。通常我们应用在服务内外部接口调用场景。Guzzle实现了HTTP GET, POST,HEAD,OPTIONS,PUT, DELETE等请求方式。支持文件的上传下载。支持JSON数据的请求响应。支持接口的同步、异步、并发请求。基本满足了我们常用业务逻辑。
1、 Guzzle的安装。
如果我们用PHP的依赖管理工具Composer安装的话比较简单。
2、 Guzzle的代码引入。
3、 Guzzle的使用。
4、HttpGuzzle封装类。
PHP---APP接口02
JSONXML
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
)
签名是在服务端进行的,客户端并不知道,所以是安全的。
php 接口判断客户端后返回值的获取
这个在服务器用file_get_contents是肯定没用的,只能从客户端发送请求,可以考虑在页面尾部加一个隐藏层,然后把接口的信息写在这个层上面,再用js去判断一下