api接口token验证怎么绕过,token进行接口验证
界面功能概述:
1.因为是非开放的,所以所有接口都是封闭的,只对公司内部的产品有效;
2.因为是非开放的,OAuth协议不起作用,因为中间用户没有授权过程;
3.有些界面需要用户登录才能访问;
4.有些界面无需用户登录即可访问;
PHP令牌(令牌)
鉴于上述特征,移动终端和服务器终端之间的通信需要两个密钥,即两个令牌。
第一个令牌用于接口(API _ token);
第二个令牌是给用户的(user _ token);
说第一个令牌(api_token)
其职责是保持接口访问的隐蔽性和有效性,确保接口只能被家庭成员使用。如何才能做到?参考思路如下:
根据服务器和客户端拥有的公共属性生成一个随机字符串。客户端生成这个字符串,服务器也按照同样的算法生成一个字符串来校验客户端的字符串。
现在界面基本都是mvc模式,网址基本都是restful风格。URL的一般格式如下:
http://blog.snsgou.com/模块名/控制器名/方法名?参数名1=参数值1参数名2=参数值2参数名3=参数值3
接口令牌生成规则如下:
Api_token=md5(模块名控制器名方法名 2013-12-18 加密密钥)=770 fed 4 ca 2 a Abd 20 AE 9 a5d 774711 de 2
在那里
1.“2013年12月18日”是今天的时间,
2.“加密密钥”是一个私有加密密钥。手机需要在服务器注册一个“界面用户”账号后,系统会分配一个账号和密码。数据表设计如下:
字段名称字段类型注释
Client_ID varchar(20)客户端ID
Client_secret varchar(20)客户端(加密)密钥
界面验证,PHP实现过程如下:
界面验证,PHP实现流程如下:Php //1,获取GET参数值$ module=$ _ GET[ mod ];$ controller=$ _ GET[ CTL ]$ action=$ _ GET[ act ];$ client _ id=$ _ GET[ client _ id ];$ API _ token=$ _ GET[ API _ token ];//2.根据客户端发来的client_id,查询数据库得到对应的client _ secret $ client _ secret=getclientsecretbyid($ client _ ID);//3.服务器将重新生成API _ token $ API _ token _ server=MD5($ module。$控制器。$ action.date (y-m-d ,time())。$ client _ secret);//4.用服务器生成的api_token检查客户端发送的api_token。如果不相等,则意味着验证失败,如果(api _ token!=$ API _ token _ server){ exit( access deny );//拒绝访问}//5。验证后,数据返回给客户端。
说第二个令牌(user_token)
其职责是保护用户的用户名和密码不被多次提交,防止密码泄露。
如果界面需要用户登录,其访问流程如下:
1.用户提交“用户名”和“密码”登录(如果条件允许,最好走https);在这一步);
2.成功登录后,服务器返回一个user_token,生成规则如下:
User_token=md5(用户的uid Unix时间戳)=etyeo fgkk 4c a2 a Abd 20 AE 9 a5 DD 77471 FGF
使用服务器数据表来维护user_token的状态。表格设计如下:
字段名称字段类型注释
User_ID int用户ID
User_token varchar(36)用户令牌
Expire_time int到期时间(Unix时间戳)
(注:只列出核心字段,其他可以展开!)
服务器生成user_token后,返回给客户端(自己存储)。每当客户端请求一个接口时,如果该接口需要用户登录才能访问,它需要将user_id和user_token发送回服务器。服务器收到这两个参数后,需要执行以下步骤:
1.检查api_token的有效性;
2.删除过期的user_token表记录;
3.根据user_id,user_token获取表记录。如果表记录不存在,会直接返回错误。如果记录确实存在,请转到下一步。
4.更新user_token的到期时间(延时,以保证在其有效期内持续运行不会断开);
5.返回接口数据;
按如下方式使用界面:
申请方式:邮寄
帖子参数:标题=我是标题内容=我是内容
返回数据:
{
Code=1,//1:成功0:失败
消息=操作成功 //登录失败、无权访问
data=[]
}
服务器端编程语言(Professional Hypertext Preprocessor的缩写)令牌(令牌)-相关链接http://www..net/article/13756.htmhttp://wenku.baidu.com/view/8f4d96ddfab069dc5022014f.html?重新查看