using System; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using TakeoutSaaS.Application.Identity.Abstractions; using TakeoutSaaS.Application.Identity.Contracts; using TakeoutSaaS.Shared.Abstractions.Constants; using TakeoutSaaS.Shared.Abstractions.Results; using TakeoutSaaS.Shared.Web.Api; using TakeoutSaaS.Shared.Web.Security; namespace TakeoutSaaS.MiniApi.Controllers; /// /// 当前用户信息 /// [ApiVersion("1.0")] [Authorize] [Route("api/mini/v{version:apiVersion}/me")] public sealed class MeController : BaseApiController { private readonly IMiniAuthService _authService; /// /// /// /// public MeController(IMiniAuthService authService) { _authService = authService; } /// /// 获取用户档案 /// [HttpGet] [ProducesResponseType(typeof(ApiResponse), StatusCodes.Status200OK)] public async Task>> Get(CancellationToken cancellationToken) { var userId = User.GetUserId(); if (userId == Guid.Empty) { return Unauthorized(ApiResponse.Error(ErrorCodes.Unauthorized, "Token 缺少有效的用户标识")); } var profile = await _authService.GetProfileAsync(userId, cancellationToken); return Ok(ApiResponse.Ok(profile)); } }