Skip to content

AuthService — 认证服务

  • 文件位置: kernel/Service/AuthService.php
  • 命名空间: kernel\Service
  • 继承: extends Foundation\Service
  • 是否可继承: 是

Token 生成服务。基于用户 ID 与盐值生成带过期时间的认证 Token,Token 使用 password_hash 加盐哈希,无法反解。

属性

无属性。

方法速查

方法说明
generateToken($userId, $tokenSalt = [], $expiration = 30)生成 Token 数组

方法

generateToken($userId, $tokenSalt = [], $expiration = 30) — 生成 Token

time() 拼接用户 ID 与盐值,password_hashPASSWORD_DEFAULT)加盐后计算过期时间戳。

参数

参数类型默认说明
$userIdint用户 ID,作为盐的一部分参与哈希
$tokenSaltarray[]额外的盐值数组,逐项拼接进哈希串,增强随机性
$expirationint30有效期(天),内部换算为秒(86400 * $expiration

返回值

  • array:关联数组,键含义如下:
类型说明
valuestringToken 哈希值
tokenstringvalue 相同
expirationDateint过期时间戳(当前时间 + 有效期秒数)
expirationint有效期(天,原始入参)

示例

php
use kernel\Service\AuthService;

$token = AuthService::generateToken(1, ["extra-salt"], 30);
// ['value' => '$2y$...', 'token' => '$2y$...', 'expirationDate' => 1765..., 'expiration' => 30]