[接口]鉴权authToken用户登录login-注册register-退出logout, 并将用户信息保存到redis中

This commit is contained in:
2026-03-04 11:39:11 +08:00
parent ad56d6d4ce
commit 77a898df22
10 changed files with 585 additions and 7 deletions

16
server/config/api.php Normal file
View File

@@ -0,0 +1,16 @@
<?php
/**
* API 鉴权与用户相关配置
*/
return [
// auth-token 有效期(秒),默认 24 小时
'auth_token_exp' => (int) env('API_AUTH_TOKEN_EXP', 86400),
// user-token 有效期(秒),默认 7 天
'user_token_exp' => (int) env('API_USER_TOKEN_EXP', 604800),
// 用户信息 Redis 缓存过期时间(秒),默认 7 天
'user_cache_expire' => (int) env('API_USER_CACHE_EXPIRE', 604800),
// 用户缓存 Redis key 前缀
'user_cache_prefix' => env('API_USER_CACHE_PREFIX', 'api:user:'),
// 用户信息加密密钥(用于 Redis 中 value 的加密),建议 32 位
'user_encrypt_key' => env('API_USER_ENCRYPT_KEY', 'dafuweng_api_user_cache_key_32'),
];

View File

@@ -13,9 +13,15 @@
*/
use Webman\Route;
use app\api\middleware\CheckApiAuthMiddleware;
// API 路由:需先调用 /api/authToken 获取 auth-token请求时携带 header: auth-token 或 Authorization: Bearer <token>
Route::group('/api', function () {
Route::any('/authToken', [app\api\controller\AuthTokenController::class, 'index']);
Route::post('/user/login', [app\api\controller\UserController::class, 'login']);
Route::post('/user/register', [app\api\controller\UserController::class, 'register']);
Route::post('/user/logout', [app\api\controller\UserController::class, 'logout']);
})->middleware([CheckApiAuthMiddleware::class]);

View File

@@ -1,7 +1,7 @@
<?php
return [
// 默认缓存驱动
'default' => env('CACHE_MODE', 'file'),
// 默认缓存驱动API 用户缓存依赖 Redis建议设为 redis 并配置 REDIS_*
'default' => env('CACHE_MODE', 'redis'),
// 缓存连接方式配置
'stores' => [
// redis缓存