package com.njuzr.eaibackend.controller; import com.njuzr.eaibackend.dto.auth.EmailLoginDTO; import com.njuzr.eaibackend.dto.auth.UserLoginDTO; import com.njuzr.eaibackend.service.AuthenticationService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @Slf4j @RestController @CrossOrigin @RequestMapping("/api/auth") public class AuthenticationController { @Autowired private AuthenticationService authenticationService; /** * 用户登陆学号(officialNumber)和密码(password)进行登陆 * * @param userLoginDTO officialNumber、password * @return 如果成功登陆,则返回登陆用户的身份信息和Token;如果失败,则返回具体原因。 */ @PostMapping("/login") public MyResponse login(@RequestBody UserLoginDTO userLoginDTO) { return authenticationService.login(userLoginDTO); } /** * 邮箱验证登录 * * @param emailLoginDTO officialEmail、verifyCode * @return 如果成功登陆,则返回登陆用户的身份信息和Token;如果失败,则返回具体原因。 */ @PostMapping("/loginByEmail") public MyResponse loginByEmail(@RequestBody EmailLoginDTO emailLoginDTO) { return authenticationService.loginByEmail(emailLoginDTO); } /** * 通门户登录 * * @param token id_token * @return 如果成功登陆,则返回登陆用户的身份信息和Token;如果失败,则返回具体原因。 */ @GetMapping("/loginByPortal") public MyResponse loginByPortal(@RequestParam(value = "id_token") String token) { return authenticationService.loginByPortal(token); } @GetMapping("/token") public MyResponse authToken(@RequestParam("token") String token){ return authenticationService.loginByPortal(token); } }