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;
///
/// 认证控制器
///
[Route("api/[controller]")]
[ApiController]
public class AuthController : BaseController
{
private readonly IAuthService _authService;
public AuthController(IAuthService authService)
{
_authService = authService;
}
///
/// 用户登录
///
/// 登录信息
/// 登录结果
[AllowAnonymous]
[HttpPost("login")]
public async Task> LoginAsync([FromBody] LoginInput input)
{
var result = await _authService.LoginAsync(input.Account, input.Password);
return Success(result);
}
///
/// 用户注册
///
/// 注册信息
/// 是否成功
[AllowAnonymous]
[HttpPost("register")]
public async Task> RegisterAsync([FromBody] RegisterInput input)
{
var result = await _authService.RegisterAsync(input);
return Success(result, "注册成功");
}
///
/// 刷新令牌
///
/// 刷新令牌
/// 新的登录结果
[AllowAnonymous]
[HttpPost("refreshToken")]
public async Task> RefreshTokenAsync([FromQuery] string refreshToken)
{
var result = await _authService.RefreshTokenAsync(refreshToken);
return Success(result);
}
}