LoginController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package com.fdkankan.ucenter.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.fdkankan.common.util.JwtUtil;
  4. import com.fdkankan.redis.util.RedisUtil;
  5. import com.fdkankan.ucenter.common.BaseController;
  6. import com.fdkankan.ucenter.common.RedisKeyUtil;
  7. import com.fdkankan.ucenter.common.Result;
  8. import com.fdkankan.ucenter.service.impl.LoginService;
  9. import com.fdkankan.ucenter.vo.request.LoginParam;
  10. import com.fdkankan.ucenter.vo.request.RegisterParam;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.beans.factory.annotation.Value;
  13. import org.springframework.web.bind.annotation.*;
  14. /**
  15. * 登录
  16. */
  17. @RestController
  18. @RequestMapping("/ucenter/sso/user")
  19. public class LoginController extends BaseController {
  20. @Autowired
  21. LoginService loginService;
  22. @Autowired
  23. RedisUtil redisUtil;
  24. @Value("${spring.profiles.active}")
  25. private String environment;
  26. @Value("${admin.register.validCode:2a22bac40f44af4d3b5fdc20ea706fc5}")
  27. private String registerValidCode;
  28. /**
  29. * 登录
  30. * phoneNum 用户名
  31. * password 密码
  32. */
  33. @PostMapping("/login")
  34. public Result login(@RequestBody LoginParam param){
  35. return Result.success(loginService.login(param));
  36. }
  37. /**
  38. * 登录
  39. * phoneNum 用户名
  40. * password 密码
  41. */
  42. @PostMapping("/loginClear")
  43. public Result loginClear(@RequestBody LoginParam param){
  44. return Result.success(loginService.loginClear(param));
  45. }
  46. /**
  47. * 相机扫码登录 获取二维码
  48. */
  49. @GetMapping("/createLoginQrCode")
  50. public Result createLoginQrCode() throws Exception {
  51. return Result.success(loginService.createLoginQrCode());
  52. }
  53. /**
  54. * 扫码验证登录
  55. */
  56. @PostMapping("/sendUserInfo")
  57. public Result sendUserInfo(@RequestBody JSONObject jsonObject){
  58. return Result.success(loginService.sendUserInfo(jsonObject.getString("uuid")));
  59. }
  60. /**
  61. * 登出
  62. */
  63. @PostMapping("/logout")
  64. public Result logout(){
  65. loginService.logout(getToken());
  66. return Result.success();
  67. }
  68. /**
  69. * 检测用户名
  70. * phoneNum 用户名
  71. */
  72. @PostMapping("/checkUser")
  73. public Result checkUser(@RequestBody LoginParam param){
  74. loginService.checkUser(param.getPhoneNum(),true);
  75. return Result.success();
  76. }
  77. /**
  78. * 获取验证码
  79. * areaNum 区号
  80. * phoneNum 手机号码
  81. */
  82. @PostMapping("/getMsgAuthCode")
  83. public Result getMsgAuthCode(@RequestBody LoginParam param) throws Exception {
  84. loginService.getMsgAuthCode(param.getAreaNum(),param.getPhoneNum());
  85. return Result.success();
  86. }
  87. /**
  88. * 发送邮件验证码
  89. */
  90. @PostMapping("/getEmailAuthCode")
  91. public Result getEmailAuthCode(@RequestBody RegisterParam param) throws Exception {
  92. loginService.getEmailAuthCode(param.getEmail(),param.getCountry());
  93. return Result.success();
  94. }
  95. /**
  96. * 注册
  97. * areaNum 区号
  98. * phoneNum 手机号码
  99. */
  100. @PostMapping("/register")
  101. public Result register(@RequestBody RegisterParam param) throws Exception {
  102. if(param.getMsgAuthCode().equals(registerValidCode)){
  103. param.setClear("YES");
  104. }
  105. loginService.register(param);
  106. return Result.success();
  107. }
  108. /**
  109. * 修改密码
  110. */
  111. @PostMapping("/changePassword")
  112. public Result changePassword(@RequestBody RegisterParam param){
  113. loginService.changePassword(param);
  114. return Result.success();
  115. }
  116. /**
  117. * 检验token是否过期
  118. */
  119. @PostMapping(value = "/checkToken")
  120. public Result checkToken(){
  121. loginService.loginCheck(getToken());
  122. return Result.success();
  123. }
  124. /**
  125. * 检验验证码是否有效
  126. */
  127. @PostMapping(value = "/checkSms")
  128. public Result checkSms(@RequestBody RegisterParam param){
  129. String username = JwtUtil.getUsername(getToken());
  130. loginService.checkSms(param.getMsgAuthCode(),username,false);
  131. return Result.success();
  132. }
  133. /**
  134. * getToken
  135. */
  136. @PostMapping("/getToken")
  137. public Result getToken(@RequestBody LoginParam param){
  138. return Result.success(loginService.loginClear(param));
  139. }
  140. /**
  141. * 测试使用 获取具体验证码
  142. * @param user
  143. * @return
  144. */
  145. @RequestMapping(value = "/findMsgAuthCode", method = RequestMethod.POST)
  146. public Result findMsgAuthCode(@RequestBody LoginParam user) {
  147. String redisKey = RedisKeyUtil.PREFIX_MSG_AUTH_CODE +user.getPhoneNum();
  148. if(!"prod".equals(environment)){
  149. return Result.success(redisUtil.get(redisKey));
  150. }
  151. if("18819272208".equals(user.getPhoneNum()) || "12369874542".equals(user.getPhoneNum())){
  152. return Result.success(redisUtil.get(redisKey));
  153. }
  154. return Result.success();
  155. }
  156. }