nishuihanlong/ltpatoken
Composer 安装命令:
composer require nishuihanlong/ltpatoken
包简介
domino sso,generate or parse ltpatoken.
README 文档
README
介绍
主要是解析或生成ltpatoken,php8.1版本验证通过
LtpaToken组成原理
通过了解LtpaToken的组成原理,我们就可以自己编码生成和解析LtpaToken了。首先一个LtpaToken的合成公式如下:
[token] = BASE64([header][creation time][expiration time][username][SHA-1 hash])
解释:
Header: LtpaToken 版本(长度4),Domino的固定为[0x00][0x01][0x02][0x03]
Creation time: 创建时间戳(长度8),格式为Unix time比如[2010-03-12 00:21:49]为4B99189D
expiration time:过期时间戳(长度8) 同上
username: 用户名(长度不定)
SHA-1 hash:SHA-1校验和(长度20)
如下图:

上面的SHA-1校验和,又是由前面所说的密钥和其余的Token资料合并而成,合成公式如下:
[SHA-1 hash] = SHA-1([header][creation time][expiration time][username][shared secret])
解释:
shared secret: 共享密钥,使用时需要先经过Base64解码,再参与计算。
校验和的计算规则如下图:

所以,如果有人篡改了Token,那校验和就与修改后的Token匹配不上了,这样Token一旦生成,有人想要修改它的信息,比如改成别的用户名,是不可能的。
注意
1.token是否被篡改
2.token是否已经过期
3.从token中获取用户登录名
用法
use Nishuihanlong\Ltpatoken;
$ltpatoken = new Ltpatoken();
//$secretKey为密钥
$token = $ltpatoken->genToken($secretKey);
//$cookie为获取到的cookie
$userName = $ltpatoken->parseToken($cookie);
nishuihanlong/ltpatoken 适用场景与选型建议
nishuihanlong/ltpatoken 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 05 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 nishuihanlong/ltpatoken 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nishuihanlong/ltpatoken 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-05-05