PHP 生成token 示例

来源:互联网 发布:实时对话翻译软件 编辑:程序博客网 时间:2024/05/19 20:01

接口特点汇总:

1、因为是非开放性的,所以所有的接口都是封闭的,只对公司内部的产品有效;

2、因为是非开放性的,所以OAuth那套协议是行不通的,因为没有中间用户的授权过程;

3、有点接口需要用户登录才能访问;

4、有点接口不需要用户登录就可访问;

PHP Token(令牌)
针对以上特点,移动端与服务端的通信就需要2把钥匙,即2token

第一个token是针对接口的(api_token);
第二个token是针对用户的(user_token);

先说第一个tokenapi_token
它的职责是保持接口访问的隐蔽性和有效性,保证接口只能给自家人用,怎么做到?参考思路如下:
按服务器端和客户端都拥有的共同属性生成一个随机串,客户端生成这个串,服务器也按同样算法生成一个串,用来校验客户端的串。

现在的接口基本是mvc模式,URL基本是restful风格,URL大体格式如下:
http://blog.snsgou.com/模块名/控制器名/方法名?参数名1=参数值1&参数名2=参数值2&参数名3=参数值3
接口token生成规则参考如下:
api_token = md5 (‘模块名+ ‘控制器名’ +‘方法名’+2013-12-18+‘加密密钥’) = 770fed4ca2aabd20ae9a5dd774711de2
其中的
12013-12-18’ 为当天时间,
2’加密密钥’ 为私有的加密密钥,手机端需要在服务端注册一个“接口使用者”账号后,系统会分配一个账号及密码,数据表设计参考如下:
字段名 字段类型 注释
client_id varchar(20) 客户端ID
client_secret varchar(20) 客户端(加密)密钥

服务端接口校验,php实现流程如下:
[Python] view plain copyCODE上查看代码片派生到我的代码片
服务端接口校验,PHP实现流程如下:

http://www.jb51.NET/article/13756.htm  

http://wenku.baidu.com/view/8f4d96ddfab069dc5022014f.html?re=view

原创粉丝点击