Hyperf JWT鉴权


装算法库

composer require firebase/php-jwt

配置密钥

config/autoload/jwt.php

declare(strict_types=1);

return [
    'secret' => env('JWT_SECRET', 'hyperf-very-secret-key-change-me'),
];
.env 里加一行(可选但推荐):

JWT_SECRET=your-random-32-char-string

app/Middleware/JwtMiddleware.php

app/Controller/AuthController.php

config/autoload/middlewares.php

declare(strict_types=1);

return [
    'http' => [
        AppMiddlewareJwtMiddleware::class,
    ],
];
所有/api/*请求都会经过 JWT 校验
/auth/login、/auth/refresh 白名单放行

config/autoload/jwt.php

declare(strict_types=1);

return [
    'secret' => env('JWT_SECRET', 'hyperf-very-secret-key-change-me'),
];

.env

JWT_SECRET=your-random-32-char-string

测试流程(验证是否稳)

# 登录
curl -X POST http://127.0.0.1:9501/auth/login

# 访问受保护接口(不带 token)
curl http://127.0.0.1:9501/user/info
# → 401

# 带 token
curl -H "Authorization: Bearer xxx" http://127.0.0.1:9501/user/info
# → 200


test2026-07-31 17:11