LoginController.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package cn.com.qmth.examcloud.tool.controller;
  2. import cn.com.qmth.examcloud.tool.cache.LoginSessionManager;
  3. import cn.com.qmth.examcloud.tool.config.Constants;
  4. import cn.com.qmth.examcloud.tool.service.CommonService;
  5. import cn.com.qmth.examcloud.tool.vo.user.User;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.web.bind.annotation.GetMapping;
  9. import org.springframework.web.bind.annotation.PostMapping;
  10. import org.springframework.web.bind.annotation.RequestParam;
  11. @Controller
  12. public class LoginController extends BaseController {
  13. @Autowired
  14. private CommonService commonService;
  15. @GetMapping(value = "/login")
  16. public String login() {
  17. if (currentLoginUser() != null) {
  18. return "redirect:/admin/workspace";
  19. }
  20. return "login";
  21. }
  22. @PostMapping(value = "/login")
  23. public void doLogin(@RequestParam String serverUrl, @RequestParam String loginName, @RequestParam String password,
  24. @RequestParam(required = false) String smsCode) {
  25. User user = commonService.login(serverUrl, loginName, password, smsCode);
  26. currentSession().setAttribute(Constants.LOGIN_USER, user);
  27. }
  28. @GetMapping(value = "/logout")
  29. public String logout() {
  30. User user = currentLoginUser();
  31. if (user != null) {
  32. LoginSessionManager.removeLoginSession(user.getToken());
  33. currentSession().removeAttribute(Constants.LOGIN_USER);
  34. }
  35. return "redirect:/login";
  36. }
  37. }