tapi/app/entity/SysUser.php
2025-08-22 10:11:22 +08:00

45 lines
1.0 KiB
PHP

<?php
namespace app\entity;
use app\model\SysRole;
use Firebase\JWT\JWT;
use Hashids\Hashids;
use think\Collection;
use think\Entity;
/**
* 系统用户实体
* @see \app\model\SysUser
* @property SysRole[]|Collection $roles
* @property array $authorities
*/
class SysUser extends Entity
{
/**
* 获取菜单列表
* @param bool $buildTree
* @return array
*/
public function getMenus(bool $buildTree = false): array
{
return $buildTree ? list_build_tree($this->authorities, 'menuId', 'parentId') : $this->authorities;
}
/**
* 生成AccessToken
* @return string
*/
public function getAccessToken(): string
{
$jwtConfig = (array)config('admin.jwt_config', []);
$jwtKey = (string)config('admin.jwt_key', '');
$hashids = new Hashids($jwtKey, 8);
return JWT::encode([
...$jwtConfig,
'iat' => time(),
'exp' => time() + 3600,
'uid' => $hashids->encode($this->user_id),
], $jwtKey, 'HS256');
}
}