1.使用header

客户端

index.html

<html>
<head><script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
<style>.oc{width: 200px;height: 100px;position: center;background: aqua;border :1px solid black;}
</style>
</head>
<body>
<div class="oc"></div>
<script>$(".oc").click(function () {$.ajax({url: './index.php',data:  {'name':'user'},beforeSend: function (request) {request.setRequestHeader("token","111111");},method:'POST',success:function (data,status,request) {alert(data);var re=request.getResponseHeader("Authorization"); //返回返回的 header 对应的字段console.log("auth:",re)}});});
</script>
</body>
</html>

服务器端

index.php

<?php//生成tokenfunction generateToken(){// 32个字符组成一组随机字符串$randChars = rand(1,10);//getRandChars(32);//用三组字符串,进行md5加密$timestamp = $_SERVER['REQUEST_TIME_FLOAT'];$salt = 'salt';//config('secure.token_salt');return md5($randChars.$timestamp.$salt);
}
$token = $_SERVER['HTTP_TOKEN'];  //获取header里面token的信息$service_token = generateToken();  //可以存到redis中,设置过期时间if ($token == $service_token)
{$data = ['code'=>1,'message'=>'success','data'=>'index',];
}else{header("Content-Type: text/html;charset=utf-8");header("Authorization: ".$service_token);//把token放在设置 header里面的Authorization发送费客户端$data = ['code'=>1,'message'=>'fail','data'=>[],];
}
exit(json_encode($data));

效果如下所示:

2.服务器使用echo返回客户端,客户端post方式发送token到服务器端也行

class Token
{public function getToken($code = ''){//return 'success';(new TokenGet())->goCheck();$ut = new UserToken($code);$token = $ut->get();return ['token'=>$token];}/** 第三方应用获取令牌*/public function getAppToken($ac='',$se=''){(new AppTokenGet())->goCheck();$app = new AppToken();$token = $app->get($ac,$se);return ['token'=>$token];}public function verifyToken($token=''){if(!$token){throw new ParameterException(['token不允许为空']);}$valid = TokenService::verifyToken($token);return['isValid'=>$valid];}}

tokenservice

class Token
{public static function generateToken(){// 32个字符组成一组随机字符串$randChars = getRandChars(32);//用三组字符串,进行md5加密$timestamp = $_SERVER['REQUEST_TIME_FLOAT'];$salt = config('secure.token_salt');return md5($randChars.$timestamp.$salt);}public static function getCurrentTokenVar($key){$token = Request::instance()->header('token');$vars = Cache::get($token);if(!$vars){throw new TokenException();}else{if(!is_array($vars)){$vars = json_decode($vars,true);}if(array_key_exists($key,$vars)){return $vars[$key];}else{throw new Exception('尝试获取的Token变量不存在');}}}public static function verifyToken($token){$exits = Cache::get('token');if($exits){return true;}else{return false;}}}

token在浏览器和服务端接收和发送相关推荐

  1. 表单及数据提交、表单的作用、服务端接收提交的数据、php处理数据流程、文件域及文件域中数据处理、php展示数据(响应)

    表单及数据提交: 表单的作用: 用于收集相关信息:html中有专门提交数据的标签,可以很容易的收集用户输入的信息,这个标签有两个重要的属性:action表单提交的地址和method以什么方式提交表单, ...

  2. 区域数据导入功能(在服务端接收上传文件)

    在服务端接收上传的文件 在Action中提供一个File类型的属性,名称和上传的文件输入框名称一致regionFile @Controller @Scope("prototype" ...

  3. 安卓使用Socket发送中文,C语言服务端接收乱码问题解决方式

    今天用安卓通过Socket发送数据到电脑上使用C语言写的服务端,发送英文没有问题,可当把数据改变成中文时,服务端接收到的数据确是乱码. 突然想到.VS的预处理使用的是ANSI编码.而安卓网络数据都是U ...

  4. java post流_Java后端HttpClient Post提交文件流 及服务端接收文件流

    客户端将文件转换为流发送: 依赖的包: org.apache.httpcomponents httpclient 4.4 org.apache.httpcomponents httpmime 4.4 ...

  5. Android客户端上传文件,C#服务端接收文件

    Android客户端代码 public static String uploadImage(File file, String RequestURL) {String result = "e ...

  6. java在线聊天项目0.4版本 制作服务端接收连接,客户端连接功能 新增客户端窗口打开时光标指向下边文本域功能,使用WindowListener监听WindowAdapter...

    建一个服务端类ChatServer,用于设置端口接收连接 package com.swift;import java.io.IOException; import java.net.ServerSoc ...

  7. wcf高并发 mysql_WCF 高并发时客户端发送和服务端接收存在等待或延迟

    前提: .net版本: .net framework 4.5.2(服务端),.net framework 3.5(客户端) 服务器:8核E5420 2.5GHZ,16G内存,1万转HDD磁盘 wind ...

  8. 从服务端接收数组_Kafka系列第6篇:消息是如何在服务端存储与读取的,你真的知道吗?...

    前言 经过前 5 篇文章的介绍,估么着小伙伴们已经对消息生产和消费的流程应该有一个比较清晰的认识了.当然小伙伴们肯定也比较好奇,Kafka 能够处理千万级消息,那它的消息是如何在 Partition ...

  9. Golang使用协程通过Socket实现客户端向服务端发送数据,服务端接收数据

    一.服务端代码: package mainimport("fmt""net" )func process(conn net.Conn) {//延迟关闭目前连接d ...

最新文章

  1. mysql备份恢复实验
  2. 利用尾递归减少栈空间的消耗
  3. 学习:erlang的term反序列化,string转换为term
  4. [鸟哥linux视频教程整理]04_02_Linux 权限及权限管理
  5. leetcode 290. 单词规律(Java版)
  6. subline3插件html,Sublime Text3与html的插件
  7. 勒索病毒恐难暴力破解 国内比特币平台尚买币潮
  8. 通过putty进行端口映射并且启动jupyter notebook
  9. 后台传html样式展示无效_Dcat Admin v1.5.0 发布,对后端开发者高颜值后台系统构建工具...
  10. extjs6 带条件查询分页
  11. robotium测试
  12. LateX各种命令符号
  13. 普通游戏显卡和专业图形显卡的区别
  14. 进阶篇:4.3)DFA设计指南:防错设计( 防呆设计)
  15. hevc AMVP模式
  16. vs code没有react提示以及html文件右键没有打开浏览器选项
  17. python多线程爬取ts文件并合成mp4视频
  18. 东风岚图配谈“梦想”吗?
  19. java变量定义规则说法正确_下列变量命名规范说法正确的是( )。
  20. vscode的搜索技巧

热门文章

  1. java 二进制 base64编码_java 按字节读写二进制文件(Base64编码解码)
  2. 向上造型和向下造型_盆景造型大全——造型教程
  3. python verilog顶层连线,如何在Verilog中连接两个模块?
  4. 三十八、Java集合中的ConcurrentHashMap
  5. 八十二、什么是SpringCloud项目,我把它讲清楚了
  6. sklearn特征的提取(上)
  7. php定义一个名为Vehicles,[PHP][Yii2.0] 以Yii 2.0风格加载自定义类或命名空间 [配置使用Yii2 autoloader]...
  8. Myeclipse中快速插入HttpServlet子类中doGet和doPost方法
  9. 一文带你看懂PaddleHub
  10. 清华大学冯珺:基于强化学习的关系抽取和文本分类 | 实录·PhD Talk