php学习笔记:登录练习(2)
来源:互联网 发布:电脑midi软件 编辑:程序博客网 时间:2024/05/17 03:05
继续请教一下同事关于token 这块设计,token这块可以带时间验证,也可以不带时间验证。在当初接触微信开发的时候,每次接口调用都是有时间凭证。所以在授权方需要这样处理。对于一些安全级别不要求那么高,没有资金需求。一个token 可以降低一下复杂度的设计,不一定需要用到接口过期时间去验证。安全级别高,加上这块还是有必要。
在上次练习中,使用session保存token。而这一次使用数据库,建立一个token表。每次登录后,刷新相应的用户token信息。
token表里面只是记录token,用户uid,exprise_time 过期时间预留字段。
在原有基础上进行修改调整。login.php
<?php //1.验证接口,接收数据,过滤数据合法性 //2.构建数据库链接 //3.md5 验证数据库用户密码 //4.生成session,返回token,带时长,或者使用数据库插入token,每次用数据库检索 //5.前端localStore 保存token,接口请求发送需要带上验证token匹配 header('Content-Type: application/json'); header('Content-Type: text/html;charset=utf-8'); $userName = $_POST['userName']; $userPwd = md5($_POST['userPwd']); $conn = mysql_connect("localhost","root","") or die('Could not connect: ' . mysql_error()); mysql_select_db("test",$conn); mysql_query("set name utf-8"); //查询结果验证 $sql = "select * from user where name ='$userName' and pwd = '$userPwd'"; $result = mysql_query($sql); if($data=mysql_fetch_array($result)) { session_start();//启动session $_SESSION['name'] = $data['name']; $_SESSION['uid'] = $data['id']; //生成token 返回给前端 $token = createToken(); //不带过期时间更新 $sql = "update token set token='$token' where uid = ".$data["id"]; $result = mysql_query($sql); if($result) { output(200,$token,'success'); } else { output(400,'','密码或帐号出错'); } //返回一个结果 } else { output(400,'','密码或帐号出错'); } mysql_close($conn); //生成不重复的token,利用网上一个算法 function createToken() { $token = md5(uniqid(md5(microtime(true)),true)); $token = sha1($token); return $token; } function output($code,$token,$msg='') { $outputData = array(); $outputData['code'] = $code; $outputData['token'] = $token; $outputData['msg'] = $msg; echo json_encode($outputData); }?>
调整过后,Session方式不做处理,改成每次登录对token表进行刷新处理。登录后,每次token都会缓存一份在客户端。
$sql = "update token set token='$token' where uid = ".$data["id"]; $result = mysql_query($sql);
阅读全文
1 0
- php学习笔记:登录练习(2)
- php学习笔记:登录练习(3)
- php学习笔记:登录练习
- PHP学习笔记 登录页面
- 学习笔记<SSH练习---实现登录>
- PHP 第三方登录学习笔记
- PHP 学习笔记 账号登录系统
- 微信登录 学习笔记 php
- 登录(学习笔记)
- 前端学习笔记之5 静态页面练习(登录)
- php学习笔记(2)
- PHP学习笔记(2)
- 学习笔记PHP(2)
- PHP学习笔记(2)
- php学习笔记-1.登录页面的学习
- php学习笔记(十六)登录页面实例-输入检查和粘性表单
- 学习笔记之php页面ajax登录异步刷新
- 【PHP+MYSQL】实现登录界面的学习笔记
- 欢迎使用CSDN-markdown编辑器
- 弥漫
- jQuery插件扩展实例
- 编写dtuserver时出现的一些问题
- 程序员博客
- php学习笔记:登录练习(2)
- 整数奇偶排序
- review中搜索已经自己已经merged的代码
- java float double
- 机器学习实战(Python3版)
- Android 程序工程的高内聚,低耦合
- web页面延迟3秒跳转
- 不将就的Python书单
- 异常值的探测(R)