using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; using SimApi.Attributes; using SimApi.Communications; using SimApi.Helpers; namespace SimApi.Controllers; public class SimApiCommonController(SimApiAuth auth) : SimApiBaseController { /// /// 错误回馈页面 /// /// 错误代码 /// [HttpGet("exception/{code:int}")] [ApiExplorerSettings(IgnoreApi = true)] public SimApiBaseResponse ExceptionHandler(int code) { return new SimApiBaseResponse(code); } /// /// 检测用户登陆的控制器 /// /// [HttpPost, SimApiDoc("认证", "检测登陆")] public SimApiBaseResponse CheckLogin() { ErrorWhenNull(LoginInfo, 401, "未登录"); return new SimApiBaseResponse { Data = LoginInfo.Id }; } /// /// 退出登陆 /// /// [HttpPost, SimApiDoc("认证", "退出登陆")] public SimApiBaseResponse Logout() { string? token = null; if (Request.Headers.TryGetValue("Token", out var value)) { token = value; } auth.Logout(token!); return new SimApiBaseResponse(); } [HttpPost, HttpGet] public SimApiBaseResponse> Versions() { return new SimApiBaseResponse>() { Data = new Dictionary { { "SimApi", SimApiUtil.SimApiVersion }, { "App", SimApiUtil.AppVersion } } }; } [HttpPost, SimApiAuth] public SimApiBaseResponse UserInfo() { return new SimApiBaseResponse(LoginInfo); } }