建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

使用 PHP 创建身份验证令牌

GG网络技术分享 2025-03-18 16:08 0


使用 OAuth 和类似的身份验证协议需要使用临时令牌,这些令牌代表多个 Web 服务之间的唯一握手。 这些令牌必须是唯一的、安全存储的,并且越长越好。

由于我已经离开 PHP 游戏一段时间了,我一直在研究如何在没有额外库的情况下创建这样的令牌。 以下代码片段可以解决问题:

// bin2hex(random_bytes($length))

$token = bin2hex(random_bytes(64));

/*

Examples:

39e9289a5b8328ecc4286da11076748716c41ec7fb94839a689f7dac5cdf5ba8bdc9a9acdc95b95245f80a00d58c9575c203ceb541507cce40dd5a96e9399f4a

1c46538c712e9b5bf0fe43d692147004f617b494d004e29daaf33e4528f253db5d911a690856f0b77cfa98103c8231bffff869f179125d17d28e52bfadb9f205

...

*/

如果您没有使用 PHP7 或更高版本,则可以回退到以下内容:

$token = bin2hex(openssl_random_pseudo_bytes(64));

拥有 OpenSSL 的支持来生成令牌可以让人相信令牌将是唯一的。 当然,您也可以进行存储检查以确保令牌尚未使用,但如果您使用 64 或更大的长度,重复令牌的机会非常小!

标签:

提交需求或反馈

Demand feedback