package io.dataease.api.permissions.login.api; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.api.permissions.login.dto.MfaLoginDTO; import io.dataease.api.permissions.login.dto.PwdLoginDTO; import io.dataease.api.permissions.login.vo.MfaQrVO; import io.dataease.api.permissions.user.dto.ModifyPwdRequest; import io.dataease.auth.vo.TokenVO; import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; /** * 登录其实就是获得token的过程,最后把token返回到前端 * 本地登录:账号密码获取用户获取token * oidc登录:回调请求头部X-Userinfo中获取用户 根据用户信息(没有就新建用户)再换取token */ @Tag(name = "登录") @ApiSupport(order = 889, author = "fit2cloud-someone") public interface LoginApi { /** * 本地登录 * * @param dto */ @Operation(summary = "本地登录") @ApiOperationSupport(order = 1) @PostMapping("/login/localLogin") TokenVO localLogin(@Valid @RequestBody PwdLoginDTO dto); @Operation(summary = "token续命", hidden = true) @ApiOperationSupport(order = 2) @GetMapping("/login/refresh") TokenVO refresh(); @Operation(summary = "第三方登录", hidden = true) @ApiOperationSupport(order = 3) @PostMapping("/login/platformLogin/{origin}") TokenVO platformLogin(@PathVariable("origin") Integer origin); @Operation(summary = "登出") @ApiOperationSupport(order = 4) @GetMapping("/logout") void logout(); @Operation(summary = "MFA二维码信息") @ApiOperationSupport(order = 5) @PostMapping("/mfa/qr/{id}") MfaQrVO mfaQr(@PathVariable("id") Long id); @Operation(summary = "MFA登录") @ApiOperationSupport(order = 6) @PostMapping("/mfa/login") TokenVO mfaLogin(@RequestBody MfaLoginDTO dto); @Operation(summary = "修改无效密码", hidden = true) @PostMapping("/login/modifyInvalidPwd") void modifyInvalidPwd(@RequestBody ModifyPwdRequest request); }