Token:在计算机身份认证中是令牌(临时)的意思,类似于 MD5 加密之后的长字符串

特点:1.随机性,不可预测  2.具有有限期 3.唯一

作用:1.防止重复提交  2.防止CSRF(跨站请求伪造)攻击

Token是服务器生成的一串字符串,以作客户端进行请求的一个令牌。

当第一次登录后,服务器生成一个Token并返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

目的就是为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库。

它的应用:

  1.当用户首次登录成功之后,服务器就会生成一个token值(UUID);

  2.服务器会保存这个值(保存在数据库中或者缓存中),再将这个token值返回给客户端;

  3.客户端拿到token值之后,使用sp进行保存。

  4.以后客户端再次发送网络请求(一般不是登录请求)的时候,就会将这个token值附带到参数中发送给服务器;

     5.服务器接收到客户端的请求之后,会取出token值与保存在本地(数据库)中的token值做比较。如果两个token值相同,说明用户登录成功过,当前用户处于登录状态,如果没有这个token值,没有登录成功。

代码仅供参考:

生成Token

   $key = "APP_TOKEN_" . 122;

$val = md5("TOKEN_" . 122 . "_" . time()); // 32 JHJKbjkBJKGHGHGHSSS

$exptime = 86400*30;

$this->redis->setex($key, $exptime, $val);//有效期 30天

验证Token

  $key = "APP_TOKEN_" .122;

  if ( !$this->redis->exists($key) ) {

    return false;

  }

$user_token = $this->redis->get($key);

if ( empty($user_token) ) {

    return false;

  }

  if ($token != $user_token) {

    return false;

  }

客户端与服务器交互中的Token的更多相关文章

  1. Android客户端与服务器交互中的token

    学习Token Token是什么? Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Tok ...

  2. Android学习总结(2)——App客户端与服务器交互中的token

    学习Token Token是什么? Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Tok ...

  3. ASP.NET 表单验证方法与客户端(浏览器)服务器交互机制的故事

    想到这个问题完全是一个意外吧,是在寻找另外一个问题答案的过程中,才对验证方法与浏览器服务器交互机制的关系有了清晰的认识. 先说下验证方法,验证方法分为前台验证和后台验证. 前台验证就是类似jQuery ...

  4. Https 客户端与服务器交互过程梳理(转)

    本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密 ...

  5. Https 客户端与服务器交互过程梳理

    本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密 ...

  6. Android 客户端与服务器交互

    在android中有时候我们不需要用到本机的SQLite数据库提供数据,更多的时候是从网络上获取数据,那么Android怎么从服务器端获取数据呢?有很多种,归纳起来有 一:基于Http协议获取数据方法 ...

  7. 浅析Java web程序之客户端和服务器端交互原理(转)

    转载自http://www.cnblogs.com/lys_013/archive/2012/05/05/2484561.html 1. 协议 a. TCP/IP整体构架概述 TCP/IP协议并不完全 ...

  8. Android客户端与服务器交互方式-小结

    最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json.要在Android手机客户端与pc服务器交互,需要 ...

  9. [转]HTTP报文接口及客户端和服务器端交互原理

    1. 协议 a. TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型.传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务.该模型的目的 ...

随机推荐

  1. Python交互式编辑器ipthon notebook jupyter

    简介 IPython NoteBook(jupyter)是一个综合的交互式编程环境,比原本python命令进入的交互式环境要强大很多,总之就是炫酷加实用,浏览器中写Python代码,访问源端linux ...

  2. Windows Server 2008 R2 /2012 修改密码策略(摘抄 原文地址 https://www.cnblogs.com/mili3/p/7799347.html)

    今天建了域环境,在添加新用户的时候,发现用简单的密码时域安全策略提示密码复杂度不够,于是我就想在域安全策略里面把密码复杂度降低一点. 问题:    在“管理工具 >> 本地安全策略 > ...

  3. Python学习---ORM查询之基于对象的正向/反向/聚合/分组/Q/F查询

    ORM查询之基于对象的正向查询与反向查询 对象形式的查询 # 正向查询 ret1=models.Book.objects.first() print(ret1.title) print(ret1.pr ...

  4. MySQL 数据库 -- 操作

    初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写. SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,SQL语言由IBM开 ...

  5. 为什么TCP协议终止链接要四次?

    为什么TCP协议终止链接要四次? 1.当主机A确认发送完数据且知道B已经接受完了,想要关闭发送数据口(当然确认信号还是可以发),就会发FIN给主机B. 2.主机B收到A发送的FIN,表示收到了,就会发 ...

  6. [BZOJ 4555][Tjoi2016&Heoi2016]求和

    题意 给定 $n$ , 求下式的值: $$ f(n)= \sum_{i=0}^n\sum_{j=0}^i\begin{Bmatrix}i\\ j\end{Bmatrix}\times 2^j\time ...

  7. 在android工程中添加图片资源(转加)

    在Android工程中,每添加一个资源,就会在gen目录下的R.java中自动生成一个新的静态整型变量来指向这个资源.程序文件中调用资源的时候,先在R.java中找到变量名,然后根据变量值查找资源. ...

  8. Alpha Scrum2

    Alpha Scrum2 牛肉面不要牛肉不要面 Alpha项目冲刺(团队作业5) 各个成员在 Alpha 阶段认领的任务 林志松:督促和监督团队进度.协调组内合作,前端页面编写,博客发布 林书浩.陈远 ...

  9. jQueryeasyUI+Hibernate+struts2实现商城后台管理之复合类别

    一.在Category.java中添加父类别和子类别两个变量,并生成get/set方法

  10. TCP握手建立与释放连接

    网络层次模型 TCP/UDP区别 UDP,在传送数据前不需要先建立连接,远地的主机在收到UDP报文后也不需要给出任何确认.虽然UDP不提供可靠交付,但是正是因为这样,省去和很多的开销,使得它的速度比较 ...