php如何创建一个带时效的token
php创建一个带时效的token是在用户登陆时把token插入数据库,生成token方法代码,每个接口都必须调用的token验证代码,token验证方法,db::是数据库操作类,这里设置是token。如果七天没被调用则需要重新登陆(也就是说用户7天没有操作APP则需要重新登陆),如果某个接口被调用,则会重新刷新过期时间。
步骤是(1)数据库用户表添加token字段和time_out这个token过期时间字段 ,
(2)用户登陆时(注册时自动登陆也需要)生成一个token和过期时间存入表中 ,
(3)在其他接口调用前,判断token是否正确,正确则继续,错误则让用户重新登陆,
具体的原因是因为APP端没有和PC端一样的session机制,所以无法判断用户是否登陆,以及无法保持用户状态,所以就需要一种机制来实现session,这就是token的作用。
token是用户登陆的唯一票据,只要APP传来的token和服务器端一致,就能证明你已经登陆。
token保存数据库里面吗
token没必要保存数据库。
Token保存时附上一个超时时间expire。比如设置7200秒后登陆无效,则登陆成功时php服务端将token和有效时间time()+7200这两个参数发送给客户端。这样只需要检查当前时间是否大于expire就能判断登陆是否还有效,不需要手动删除.
同时服务端登陆成功时设置一个有过期时间的session,这样可以通过session是否存在来决定用户的登陆信息是否还有效。
Php接口应该加密哪些
在实际开发中PHP接口开发是PHP常见的技术,可以通过接口进行一些操作,可以访问接口获取数据,给app提供数据接口等,但是如果接口没有加密解密的过程,很容易发生盗用和不安全的操作。
下边简单介绍一下API接口的加密方法
如app要请求用户列表,api是“index.php?module=user&action=list”
app生成token = md5 (‘user’.’list′.’abc12@1qwe~456’) = 5e549e3c1e808125d1a7e0746625abb6;
则实际发起请求为 “index.php?module=user&action=list&token=5e549e3c1e808125d1a7e0746625abb6”
服务器端接到请求用同样方法计算token:
<?php
$module = $_GET['module'];
$action = $_GET['action'];
$urltoken = $_GET['token']; //app发送过来的token
$token = md5($module.$action.'abc12@1qwe~456');
if($urltoken != $token){
exit('error');
}else{
echo 'success';
}
还没有评论,来说两句吧...