//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库:https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway
// 使用文档:https://thingsgateway.cn/
// QQ群:605534569
//------------------------------------------------------------------------------
using Mapster;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.ComponentModel;
namespace ThingsGateway.Admin.Application;
///
/// 登录
///
[ApiDescriptionSettings("ThingsGateway.OpenApi", Order = 200)]
[Description("登录")]
[Route("openapi/auth")]
[Authorize(AuthenticationSchemes = "Bearer")]
[RequestAudit]
[ApiController]
public class OpenApiController : ControllerBase
{
private readonly IAuthService _authService;
public OpenApiController(IAuthService authService)
{
_authService = authService;
}
[HttpPost("login")]
[DisplayName("登录")]
[AllowAnonymous]
public async Task LoginAsync([FromBody] OpenApiLoginInput input)
{
var output = await _authService.LoginAsync(input.Adapt(), false).ConfigureAwait(false);
var openApiLoginOutput = output.Adapt();
return openApiLoginOutput;
}
[HttpPost("logout")]
[Authorize]
[DisplayName("登出")]
[IgnoreRolePermission]
public Task LogoutAsync()
{
return _authService.LoginOutAsync();
}
}