首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

PHP Token 认证机制实现

在 PHP 中实现基于 Token 的认证机制,并在用户关闭页面后使 Token 失效,可以通过以下步骤实现: 1. 生成 Token 并存储 在登录时生成 Token 并存储到数据库: // 登录成功后的处理 function generateAndStoreToken($userId) { // 生成唯一Token $token = bin2hex(random_bytes(32)); // 生成64字符的随机字符串 // 计算过期时间(例如1小时后过期) $expires = date('Y-m-d H:i:s', strtotime('+1 hour')); // 存储到数据库 $db = new PDO('mysql:host=localhost;dbname=yourdb', 'username', 'password'); $stmt = $db->prepare("INSERT INTO user_...
类别:网页编程 - PHP技术    查看:50    更新:2025-06-09

WebSocket移动端锁屏以及退到后台重连机制

手机锁屏以及退出后台webscoket会断开:js在手机熄屏后会中断,在唤醒之后js会继续执行。所以设置在js中的定时发送心跳包的功能在手机熄屏后就没法执行了。熄屏时间过长,这个时候链接就会被服务端强制断开,并且大部分手机在熄屏时,websocket连接就已经断开了。 解决办法: 使用H5提供的页面隐藏/显示API document.addEventListener('visibilitychange',function() { if(document.visibilityState == 'hidden') { //记录页面隐藏时间 let hiddenTime = new Date().getTime() } else { let visibleTime = new Date().getTime(); //页面再次可见的时间-隐藏时间>10S,重连 if((visibleTime - hidden...
类别:网页编程 - JavaScript    查看:141    更新:2023-07-15

SIP中的事务处理机制

       SIP是一个基于事务处理的协议:部件之间的交互是通过一系列无关的消息交换所完成的。特别是,一个SIP 事务由一个单个请求和这个请求的所有应答组成,这些应答包括了零个或者多个临时应答以及一个或者多个终结应答。在事务中,当请求是一个INVITE(叫做INVITE事务),当终结应答不是一个2xx应答的时候,事务还包括一个ACK。如果应答是一个2xx应答,那么ACK并不认为是事务的一部分。这个分开的原因是基于传递全部200(OK)应答到UAC的INVITE请求的重要性所决定的。要把所有的200应答全部发给UAC,那么UAS独自负责这些应答的重新传送(参见13.3.1.4),UAC独自负责...
类别:网络技术 - VOIP技术    查看:143    更新:2014-08-11

SIP协议的事务处理机制-NIST处理流程

本站原创文章,如需转载,请保留作者及出处:www.goalercn.com,谢谢合作,不愿保留作者及出处信息的请勿转载!   SIP共有4个状态处理机制,分别是ICT(客户端的请求消息-INVITE及与之相关的消息)、NICT(客户端非INVITE消息的其他所有消息)、IST(服务器端的请求消息- INVITE及与之相关的消息)、NIST(服务端的非INVITE消息的其他所有消息) 为什么要把INVITE消息单独处理? 因为INVITE是一个3次握手的过程,而其他所有的消息只需要两次握手;其过程类似与TCP/UDP。 Non-INVITE Server Transaction |Request...
类别:网络技术 - VOIP技术    查看:171    更新:2014-07-26

SIP协议的事务处理机制-IST处理流程

本站原创文章,如需转载,请保留作者及出处:www.goalercn.com,谢谢合作,不愿保留作者及出处信息的请勿转载!   SIP共有4个状态处理机制,分别是ICT(客户端的请求消息-INVITE及与之相关的消息)、NICT(客户端非INVITE消息的其他所有消息)、IST(服务器端的请求消息- INVITE及与之相关的消息)、NIST(服务端的非INVITE消息的其他所有消息)   为什么要把INVITE消息单独处理? 因为INVITE是一个3次握手的过程,而其他所有的消息只需要两次握手;其过程类似与TCP/UDP。   INVITE Server Transaction ...
类别:网络技术 - VOIP技术    查看:181    更新:2014-07-26

SIP协议的事务处理机制-NICT处理流程

本站原创文章,如需转载,请保留作者及出处:www.goalercn.com,谢谢合作,不愿保留作者及出处信息的请勿转载! SIP共有4个状态处理机制,分别是ICT(客户端的请求消息-INVITE及与之相关的消息)、NICT(客户端非INVITE消息的其他所有消息)、IST(服务器端的请求消息- INVITE及与之相关的消息)、NIST(服务端的非INVITE消息的其他所有消息) 为什么要把INVITE消息单独处理? 因为INVITE是一个3次握手的过程,而其他所有的消息只需要两次握手;其过程类似与TCP/UDP。 TU:可理解为上层用户,应用界面,用户点击触发: Non-INVITE Client Transaction ...
类别:网络技术 - VOIP技术    查看:177    更新:2014-07-26

SIP协议的事务处理机制-ICT处理流程

本站原创文章,如需转载,请保留作者及出处:www.goalercn.com,谢谢合作,不愿保留作者及出处信息的请勿转载! SIP共有4个状态处理机制,分别是ICT(客户端的请求消息-INVITE及与之相关的消息)、NICT(客户端非INVITE消息的其他所有消息)、IST(服务器端的请求消息- INVITE及与之相关的消息)、NIST(服务端的非INVITE消息的其他所有消息)   为什么要把INVITE消息单独处理? 因为INVITE是一个3次握手的过程,而其他所有的消息只需要两次握手;其过程类似与TCP/UDP。 INVITE Client Transaction |INVITE fro...
类别:网络技术 - VOIP技术    查看:201    更新:2014-07-26

蓝牙技术的安全机制

蓝牙技术提供了一种短距离的无线通信标准,同其它无线技术一样,蓝牙技术的无线传输特性使它非常容易受到攻击,因此安全机制在蓝牙技术中显得尤为重要。虽 然蓝牙系统所采用的跳频技术已经提供了一定的安全保障,但是蓝牙系统仍然需要链路层和应用层的安全管理。本文首先讨论无线网络的安全问题,然后介绍了在蓝 牙系统中采用的安全技术。一、无线网络中的安全问题蓝牙技术可以提供点对点和点对多点(广播)的无线连接,采用蓝牙技术,多个蓝牙设备能够临时组构无线通信网,实现信息的交换和处理。这种无线网络的安全威胁来源于非法窃听、非授权访问和服务拒绝等,不同的安全威胁会给网络带来不同程度的破坏。非法窃听是指入侵者通过对无线信道的监...
类别:网络技术 - 无线技术    查看:131    更新:2014-07-18

JSP/Servlet : Servlet/JSP会话跟踪机制

在Web服务器端编程中,会话状态管理是一个经常必须考虑的重要问题。本文分析JSP/Servlet的会话管理机制及其所面临的问题,然后提出了一种改进的会话管理方法。 一、Servlet的会话管理机制 根据设计,HTTP是一种无状态的协议。它意味着Web应用并不了解有关同一用户以前请求的信息。维持会话状态信息的方法之一是使用Servlet或者JSP容器提供的会话跟踪功能。Servlet API规范定义了一个简单的HttpSession接口,通过它我们可以方便地实现会话跟踪。 HttpSession接口提供了存储和返回标准会话属性的方法。标准会话属性如会话标识符、应用数据等,都以“名字-值”对的形式保存。简而言之,HttpSession接口提供了一种...
类别:网页编程 - JSP技术    查看:125    更新:2014-06-28

JavaScript定时机制

容易欺骗别人感情的JavaScript定时器JavaScript的setTimeout与setInterval是两个很容易欺骗别人感情的方法,因为我们开始常常以为调用了就会按既定的方式执行, 我想不少人都深有同感, 例如setTimeout( function(){ alert('你好!'); } , 0);setInterval( callbackFunction , 100);认为setTimeout中的问候方法会立即被执行,因为这并不是凭空而说,而是JavaScript API文档明确定义第二个参数意义为隔多少毫秒后,回调方法就会被执行. 这里设成0毫秒,理所当然就立即被执行了.同理对setInterval的callbackFunction方法每间隔100毫秒就立即被执行深信不疑!但随着JavaScript应用开发经验不断的增加和丰富,有一天你发现了一段怪异的代码而...
类别:网页编程 - JavaScript    查看:151    更新:2014-06-14

jQuery插件机制:jQuery.extend(object)

jQuery.extend(object)     返回值:jQuery 概述 扩展jQuery对象本身。 用来在jQuery命名空间上增加新函数。 查看 'jQuery.fn.extend' 获取更多添加插件的信息。 参数 objectObject 用以扩展 jQuery 对象 示例 描述: 在jQuery命名空间上增加两个函数。 jQuery 代码: jQuery.extend({ min: function(a, b) { return a < b ? a : b; }, max: function(a, b) { return a > b ? a : b; } }); 结果: jQuery.min(2,3); // => 2 jQuery.max(4,5); // => 5 ...
类别:网页编程 - JavaScript    查看:103    更新:2014-05-26

jQuery插件机制:jQuery.fn.extend(object)

jQuery.fn.extend(object)      返回值:jQuery 概述 扩展 jQuery 元素集来提供新的方法(通常用来制作插件)。 查看这里Plugins/Authoring可以获取更多信息。 参数 objectObject 用来扩充 jQuery 对象。 示例 描述: 增加两个插件方法。 jQuery 代码: jQuery.fn.extend({ check: function() { return this.each(function() { this.checked = true; }); }, uncheck: function() { return this.each(function() { this.checked = false; }); } }); 结果: $("input[type=checkbox]").check(); $("input[type=radio]").uncheck(); ...
类别:网页编程 - JavaScript    查看:113    更新:2014-05-26

Javascript中的反射机制

反射机制指的是程序在运行时能够获取自身的信息。例如一个对象能够在运行时知道自己有哪些方法和属性。 在JavaScript中有一个很方便的语法来实现反射,即for(…in…)语句,其语法如下: for(var p in obj){       //语句 } 这里var p表示声明的一个变量,用以存储对象obj的属性(方法)名称,有了对象名和属性(方法)名,就可以使用方括号语法来调用一个对象的属性(方法): for(var p in obj){       if(typeof(obj[p]=="function"){              obj[p]();       }else{    &n...
类别:网页编程 - JavaScript    查看:109    更新:2014-05-22

AJAX的JavaScript的反射机制

什么是反射机制    反射机制指的是程序在运行时能够获取自身的信息。例如一个对象能够在运行时知道自己有哪些方法和属性。    在JavaScript中利用for(…in…)语句实现反射    在JavaScript中有一个很方便的语法来实现反射,即for(…in…)语句,其语法如下: for(var p in obj){ //语句 }    这里var p表示声明的一个变量,用以存储对象obj的属性(方法)名称,有了对象名和属性(方法)名,就可以使用方括号语法来调用一个对象的属性(方法): for(var p in obj){ if(typeof(obj[p]=="function"){ obj[p](); }else{ alert(obj[p]); } }    这段语句遍历obj对象的所有属性和方法,遇到属性则弹出它的值,遇到方法则立刻执行。在后面...
类别:网页编程 - JavaScript    查看:105    更新:2014-05-21

JSP/Servlet:Servlet/JSP会话跟踪机制

在Web服务器端编程中,会话状态管理是一个经常必须考虑的重要问题。本文分析JSP/Servlet的会话管理机制及其所面临的问题,然后提出了一种改进的会话管理方法。 一、Servlet的会话管理机制 根据设计,HTTP是一种无状态的协议。它意味着Web应用并不了解有关同一用户以前请求的信息。维持会话状态信息的方法之一是使用Servlet或者JSP容器提供的会话跟踪功能。Servlet API规范定义了一个简单的HttpSession接口,通过它我们可以方便地实现会话跟踪。 HttpSession接口提供了存储和返回标准会话属性的方法。标准会话属性如会话标识符、应用数据等,都以“名字-值”对的形式保存。简而言之,HttpSession接...
类别:网页编程 - JSP技术    查看:140    更新:2014-05-20

反射机制实现动态代理的代码

class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function __construct() { $this->target[] = new ClassOne(); } function __call($name, $args) { foreach ($this->target as $obj) { $r = new ReflectionClass($obj); if ($method = $r->getMethod($name)) { if ($method->isPublic() && !$method->isAbstract()) { return $method->invoke($obj, $args); } } } } } $obj = new ClassOneDelegator(); $obj->callClassOne(); ?> 输出结果:In Class One 可见,通...
类别:网页编程 - PHP技术    查看:107    更新:2014-05-19