Files
x-server-mobile/backend/config/route.php
T
root 2e5f570b40 feat: 完善鉴权和密码功能,添加飞书通知模块
- 完善Token过期/不存在时跳转登录重新认证
- 实现正常的账号密码登录验证(邮箱/手机号+密码)
- 用户初始化密码设为工号(sn)
- 添加修改密码功能(API+前端页面)
- 修复扫码登录后跳转问题(zustand persist格式)
- 创建飞书通知服务 FeishuNotificationService
- 设置页面添加修改密码入口

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:19:37 +08:00

56 lines
3.0 KiB
PHP

<?php
use Webman\Route;
// 全局 API 中间件(语言设置)
$apiMiddleware = [app\middleware\LanguageMiddleware::class];
$authMiddleware = array_merge($apiMiddleware, [app\middleware\AuthMiddleware::class]);
// 认证路由(不需要认证)
Route::group('/api/v1', function () {
Route::post('/auth/login', [app\controller\AuthController::class, 'login']);
Route::post('/auth/feishu-login', [app\controller\AuthController::class, 'feishuLogin']);
Route::post('/auth/qrcode-login', [app\controller\AuthController::class, 'qrcodeLogin']);
Route::get('/auth/qrcode-login/status', [app\controller\AuthController::class, 'qrcodeLoginStatus']);
})->middleware($apiMiddleware);
// 飞书登录回调(不在 /api/v1 下,供飞书重定向使用)
Route::get('/login/callback', [app\controller\AuthController::class, 'qrcodeLoginCallback'])->middleware($apiMiddleware);
// 用户路由(需要认证)
Route::group('/api/v1/user', function () {
Route::get('/info', [app\controller\UserController::class, 'info']);
Route::get('/menu', [app\controller\UserController::class, 'menu']);
Route::get('/companies', [app\controller\UserController::class, 'companies']);
Route::get('/list', [app\controller\UserController::class, 'list']);
Route::post('/switch-company', [app\controller\UserController::class, 'switchCompany']);
Route::post('/change-password', [app\controller\UserController::class, 'changePassword']);
})->middleware($authMiddleware);
// 审批路由(需要认证)
Route::group('/api/v1/approval', function () {
Route::get('/list', [app\controller\ApprovalController::class, 'list']);
Route::get('/detail/{id}', [app\controller\ApprovalController::class, 'detail']);
Route::post('/approve/{id}', [app\controller\ApprovalController::class, 'approve']);
Route::post('/reject/{id}', [app\controller\ApprovalController::class, 'reject']);
Route::post('/cancel/{id}', [app\controller\ApprovalController::class, 'cancel']);
})->middleware($authMiddleware);
// 出差审批路由(需要认证)
Route::group('/api/v1/business-trip', function () {
Route::get('/list', [app\controller\BusinessTripController::class, 'list']);
Route::get('/detail/{id}', [app\controller\BusinessTripController::class, 'detail']);
Route::get('/default-approvers', [app\controller\BusinessTripController::class, 'getDefaultApprovers']);
Route::post('/create', [app\controller\BusinessTripController::class, 'create']);
Route::post('/update/{id}', [app\controller\BusinessTripController::class, 'update']);
Route::post('/submit/{id}', [app\controller\BusinessTripController::class, 'submit']);
Route::post('/cancel/{id}', [app\controller\BusinessTripController::class, 'cancel']);
Route::delete('/{id}', [app\controller\BusinessTripController::class, 'deleteDraft']);
Route::post('/approve/{id}', [app\controller\BusinessTripController::class, 'approve']);
})->middleware($authMiddleware);
// 默认路由
Route::fallback(function () {
return json(['code' => 404, 'message' => 'Not Found']);
});