使用thinkphp框架开发 供android,ios和web端共用的接口,该怎么做

使用thinkphp框架开发 供android,ios和web端共用的接口,该怎么做,第1张

1、移动App和web最好不要共用一套API,因为两者画面差异太大, 会造成移动App页面加载瓶颈限制。
2、Android、IOS、手机网页三者可以共用一套API, PC端的网页重新设计一套API吧。
3、具体得根据画面结构去设计API。

1、利用先进的WebRTC
WebRTC是一种新的Web标准,用于实现Web环境中的实时点对点通信,可以传输数据、语音和视频。有一些第三方javascript库可以方便的支持WebRTC,比如PeerJS - Simple peer-to-peer with WebRTC。
2、自行通过WebSockets实现
WebSockets是一种为实时双向数据传输建立的Web传输协议,它使得服务器端能够主动push数据到浏览器端。WebSockets目前在移动端的支持要略好一点,iOS 7以上和Android 44以上都可以支持。如果使用Crosswalk打包,应该可以在更多版本的Android系统上使用。基于WebSockets的第三方库也不少。

随着信息化进程的加快,现在的网站和APP应用很常见,对于普通用户而言我们只能看到表现层(界面视图层),而内部的的数据交互及处理靠的是一个个API来实现的。所谓的API是指应用程序接口,也就是将特定的业务功能封装起来供第三方调用,现在的API有很多种形式,而WebAPI是最常见和便捷的。

既然API是提供给第三方调用的,这就存在一个问题:很多时候我们希望API只能由自家的产品去调用,防止他人调用,这该如何实现呢?这就得靠接口鉴权了。

什么是接口(API)鉴权?

正如上面所说,如果把API接口直接暴露在互联网上是存在安全风险的,所以我们需要对API进行权限划分,对接口调用方做一个用户鉴权,如果鉴权通过则允许此用户进行API调用,反之则拒绝。

根据不同的业务场景,接口鉴权方案也有很多种,下面详细给大家介绍。

Cookie+Session机制实现WebAPI的鉴权

这种机制是最为传统的,特别是在网站中的登录模块靠的就是Cookie+Session来实现会话管理的。

1、实现原理

后台为了标识请求是哪个客户端发现的,会在服务端生成一个Session来保存会话状态,各个Session是靠具有唯一性的SessionID来标识的,SessionID存储在客户端的Cookie中;后续所有请求都会把Cookie传到服务器端,服务器端解析Cookie后找到对应的Session进行判断。

2、优点

技术实现方便。

3、缺点弊端

不适合分布式应用,跨平台性差

Cookie传输会影响通信性能

>

存在安全风险:因为Cookie是存储在客户端的,客户端可以随意更改Cookie,存在伪造请求的风险

Token机制实现WebAPI的鉴权

Token(令牌)是用来替代Session的新兴鉴权方案,现在的WebAPI基本上离不开Token令牌。

1、实现原理

Token是服务器端生成的一串加密串发放给客户端,客户端请求服务器端所有资源时会带上这个Token(通过GET/POST/Header来传递),由服务器端来校验这个Token的合法性。

2、优点

真正的无状态,适合分布式,扩展性好

性能高,安全性好

3、Token的实现形式

Token令牌技术是一种技术方案统称,具体的实现方案是有所差别的,最常见的Token种类有以下几种:

自定义实现Token:应用开发者根据Token机制原理自行实现

JWT:JsonWebToken,是一种主流的Token规范

Oauth:Oauth本质上是授权规范,其中也用到了Token

>

WebAPI是基于>

>

基本认证

摘要认证

但是这种机制日常很少使用,因为>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13415152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-31
下一篇 2023-07-31

发表评论

登录后才能评论

评论列表(0条)

保存