62 lines
1.8 KiB
C#
62 lines
1.8 KiB
C#
|
|
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);
|
||
|
|
}
|
||
|
|
}
|