Files
QYZH.InteractiveMagazine/QYZH.InteractiveMagazine.WebApi/Controllers/AuthController.cs

62 lines
1.8 KiB
C#
Raw Normal View History

2026-06-01 13:42:40 +08:00
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using QYZH.InteractiveMagazine.IService;
using QYZH.InteractiveMagazine.IService.Dto;
using QYZH.InteractiveMagazine.Models.Dto;
namespace QYZH.InteractiveMagazine.WebApi.Controllers;
/// <summary>
/// 认证控制器
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class AuthController : BaseController
{
private readonly IAuthService _authService;
public AuthController(IAuthService authService)
{
_authService = authService;
}
/// <summary>
/// 用户登录
/// </summary>
/// <param name="input">登录信息</param>
/// <returns>登录结果</returns>
[AllowAnonymous]
[HttpPost("login")]
public async Task<BaseResponse<LoginOutput>> LoginAsync([FromBody] LoginInput input)
{
var result = await _authService.LoginAsync(input.Account, input.Password);
return Success(result);
}
/// <summary>
/// 用户注册
/// </summary>
/// <param name="input">注册信息</param>
/// <returns>是否成功</returns>
[AllowAnonymous]
[HttpPost("register")]
public async Task<BaseResponse<bool>> RegisterAsync([FromBody] RegisterInput input)
{
var result = await _authService.RegisterAsync(input);
return Success(result, "注册成功");
}
/// <summary>
/// 刷新令牌
/// </summary>
/// <param name="refreshToken">刷新令牌</param>
/// <returns>新的登录结果</returns>
[AllowAnonymous]
[HttpPost("refreshToken")]
public async Task<BaseResponse<LoginOutput>> RefreshTokenAsync([FromQuery] string refreshToken)
{
var result = await _authService.RefreshTokenAsync(refreshToken);
return Success(result);
}
}