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. 【Android 逆向】逆向修改游戏应用 ( APK 解析工具 | 解包 -> 分析 -> 重打包 -> 签名 流程 )
  2. Github Windows安装帮助
  3. python中requests的用法总结
  4. 防止黑客入侵的五大技巧
  5. eclipse juno_Eclipse Juno上带有GlassFish的JavaEE 7
  6. 简单工厂模式(静态工厂模式)
  7. python求解LeetCode习题Intersection of Two Linked Lists
  8. 机器学习算法——支持向量机SVM7(支持向量回归)
  9. 计算机毕业设计Java河南省农村多元化养老服务管理系统设计与实现(源码+系统+mysql数据库+lw文档)
  10. 关于cocoapods遇到xxxx file not found和No such module 'XXX'的问题
  11. Ubuntu包依赖损坏的解决unmet dependencies
  12. 【五一劳动节收尾-假日结束】
  13. java.lang.ClassCastException: [Ljava.lang.Long; cannot be cast to java.util.List
  14. Android本地视频出现无法播放此视频问题
  15. openGL ES进阶教程(五)制作一个简单的VR播放器,播放全景视频
  16. android模拟器中使用SDCard
  17. 华软mysql考试_在广州大学华软软件学院就读是怎样一番体验?
  18. jvm调优思路及调优案例
  19. 首届服务网格峰会明日开幕
  20. 山东大学计算机组成与设计实验一基本逻辑门逻辑实验

热门文章

  1. php 让字体闪烁,js实现文字闪烁特效的方法
  2. android 获取Service(服务)的运行状态
  3. 创建hadoop用户并配置ssh免密码登录
  4. 额外篇| Python制作词云
  5. 今日arXiv精选 | 13 篇 ICCV 2021 最新论文
  6. Industry AI Live | BERT在美团搜索业务中的应用
  7. CVPR 2019 开源论文 | 基于空间自适应归一化的图像语义合成
  8. 论文盘点:CVPR 2019 - 文本检测专题
  9. 实录分享 | 计算未来轻沙龙:揭秘AutoML技术(视频 + PPT)
  10. 剑指Offer_编程题 不用加减乘除做加法