feat(challenges): 支持公开访问挑战列表与详情接口

- 在 GET /challenges、GET /challenges/:id、GET /challenges/:id/rankings 添加 @Public() 装饰器,允许未登录用户访问
- 将 userId 改为可选参数,未登录时仍可返回基础数据
- 列表接口过滤掉 UPCOMING 状态挑战,仅展示进行中/已结束
- 返回 DTO 新增 unit 字段,用于前端展示进度单位
- 鉴权守卫优化:公开接口若携带 token 仍尝试解析并注入 user,方便后续业务逻辑
This commit is contained in:
richarjiang
2025-09-30 16:43:46 +08:00
parent 87c3cbfac9
commit 999fc7f793
6 changed files with 64 additions and 33 deletions

View File

@@ -219,7 +219,7 @@ export class AppleAuthService {
*/
extractTokenFromHeader(authHeader: string): string {
if (!authHeader || !authHeader.startsWith('Bearer ')) {
throw new UnauthorizedException('无效的授权头格式');
return ''
}
return authHeader.substring(7);