在 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_...
在一些比较有有名的SIP软电话中,经常需要配置 display_name、 user_name、Authentication_name; display_name :被认为是用户昵称 ,就如同qq中的显示名称,但它不是唯一的; 用户ID(user-name)是电话的SIP地址中用户部分,而且通常是作为呼叫者ID的信息,显示在SIP软件或者电话机的LCD上。 典型的情况下,用户ID(user-name)是一个电话号码或者是扩展了的数字,或者是一个用户的名字。 而认证ID(authentication-name)则是严格地用于认证目的之I...
“摘要”式认证( Digest authentication)是一个简单的认证机制,最初是为HTTP协议开发的,因而也常叫做HTTP摘要,在RFC2671中描述。其身份验证机制很简单,它采用杂凑式(hash)加密方法,以避免用明文传输用户的口令。 摘要认证就是要核实,参与通信的双方,都知道双方共享的一个秘密(即口令)。 当服务器想要查证用户的身份,它产生一个摘要盘问(digest challenge),并发送给用户。典型的摘要盘问如下: Digest realm="iptel.org", qop="auth,auth-int", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093&quo...
注:请参照RFC3261使用HTTP认证SIP为认证系统提供了一个无状态的,试错机制,这个认证机制式基于HTTP的认证机制的。任何时候proxy服务器或者UA接收到一个请求(22.1节例外),它尝试检查请求发起者提供的身份确认。当发起方身份确认了,请求的接受方应当确认这个用户是否式通过认证的。在本文档中,没有建议或者讨论认证系统。 本节描述的“Digest”认证机制,只提供了消息认证和复查保护,没有提供消息完整性或者机密性的保证。上述的保护级别和基于这些Digest提供的保护,可以防止SIP攻击者改变SIP请求和应答。 注意由于这个脆弱的安全性,我们不赞成”Basic”(基本的)认证方法。服务...
随着宽带以太网建设规模的迅速扩大,网络上原有的认证系统已经不能很好地适应用户数量急剧增加和宽带业务多样性的要求。IEEE 802.1x协议对认证方式和认证体系结构进行了优化,解决了传统PPPoE和Web/Portal认证方式带来的问题,更适合在宽带以太网中的使用。什么是IEEE 802.1x协议IEEE 802.1x 称为基于端口的访问控制协议(Port based network access control protocol)。IEEE 802.1x协议的体系结构包括三个重要的部分:Supplicant System客户端、Authenticator System认证系统、Authentication Server System认证服务器。客户端系统 一般为一个用户终端系统,该终端系统通常要安装一个客户端软件,用户通过启动这...
类别:网络技术 查看:124
更新:2014-07-11
最近研究了jsp中作HTTP认证的问题,它的工作方式如下: 1、server发送一个要求认证代码401和一个头信息WWW-authenticate,激发browser弹出一个认证窗口 2、server取得browser送来的认证头"Authorization",它是加密的了,要用Base64方法解密,取得明文的用户名和密码 3、检查用户名和密码,根据结果传送不同的页面 以下是jsp的片断,你也可以把它做成include文件。和Base64的加解密的class源码。 如有兴趣可与我联系:
[email protected] <jsp:useBean id="base64"scope="page"class="Base64"/> <% if(request.getHeader("Authorization")==null){ response.setStatus(4...
最近研究了jsp中作HTTP认证的问题,它的工作方式如下: 1、server发送一个要求认证代码401和一个头信息WWW-authenticate,激发browser弹出一个认证窗口 2、server取得browser送来的认证头"Authorization",它是加密的了,要用Base64方法解密,取得明文的用户名和密码 3、检查用户名和密码,根据结果传送不同的页面 以下是jsp的片断,你也可以把它做成include文件。和Base64的加解密的class源码。 如有兴趣可与我联系:
[email protected] <jsp:useBean id="base64"scope="page"class="Base64"/> <% if(request.getHeader("Authorization")==null){ response.setStatus(401); response.setHeader("WWW-authenticate","B...
<?
if(!isset($PHP_AUTH_USER))
{
Header("WWW-Authenticate: Basic realm=请输入你的用户名和密码:");
Header("HTTP/1.0 401 Unauthorized");
echo "验证失败,你不能网络资源!";
exit;
}
else
{
if ($PHP_AUTH_USER!="username" or $PHP_AUTH_PW!="password")
{
Header("HTTP/1.0 401 Unauthorized");
echo "验证失败,你不能网络资源!";
exit;
}
}
?>...