From 2a0876b689ad97c58f79e9ca4637ae2dd43baa52 Mon Sep 17 00:00:00 2001 From: manailin <261030956@qq.com> Date: 星期一, 17 五月 2021 15:25:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/manailin_test' into test --- springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java | 142 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 142 insertions(+), 0 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java new file mode 100644 index 0000000..4080e2f --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java @@ -0,0 +1,142 @@ +package com.panzhihua.auth.api; + +import com.panzhihua.auth.service.LoginService; +import com.panzhihua.common.exceptions.TokenException; +import com.panzhihua.common.exceptions.UnAuthenticationException; +import com.panzhihua.common.model.vos.LoginReturnVO; +import com.panzhihua.common.model.vos.LoginUserInfoVO; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.utlis.JWTTokenUtil; +import io.jsonwebtoken.Claims; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @program: springcloud_k8s_panzhihuazhihuishequ + * @description: 登录\登出 + * @author: huang.hongfa weixin hhf9596 qq 959656820 + * @create: 2020-11-19 16:56 + **/ +@RestController +@RequestMapping("/") +public class LoginApi { + @Resource + private LoginService loginService; + + /** + * 小程序登录 + * + * @param openId 微信标识 + * @return jwt + */ + @PostMapping("/loginApplets") + public R loginApplets(@RequestParam("openId") String openId) { + LoginReturnVO loginReturnVO = loginService.loginApplets(openId); + return R.ok(loginReturnVO); + } + + /** + * 用户登出 + * + * @param token 登录用户token + * @return 登出结果 + */ + @PostMapping("/logout") + public R logout(@RequestParam("token") String token) { + loginService.logoutApplets(token); + return R.ok(); + } + /** + * 运营后台登录 + * @param account 账户 + * @param password 密码 + * @return 登录结果 + */ + @PostMapping("/loginAppletsBackStage") + public R loginAppletsBackStage(@RequestParam("account") String account, @RequestParam("password")String password){ + LoginReturnVO loginReturnVO =loginService.loginAppletsBackStage(account,password); + return R.ok(loginReturnVO); + } + + /** + * 大数据统计平台(区、街道、社区三层登陆接口) + * @param account 账户 + * @param password 密码 + * @author manailin + * @return 登录结果 + * @date 2021-5-13 10:56 + */ + @PostMapping("/loginBigDataBackStage") + public R loginBigDataBackStage(@RequestParam("account") String account, @RequestParam("password")String password){ + boolean accountCheck = ObjectUtils.isEmpty(account); + boolean passwordCheck = ObjectUtils.isEmpty(password); + if (accountCheck||passwordCheck) { + return R.fail("账户密码不能为空"); + } + LoginReturnVO loginReturnVO =loginService.loginBigDataBackStage(account,password); + return R.ok(loginReturnVO); + } + + /** + * 社区后台登录 + * @param account 账户 + * @param password 密码 + * @return 登录结果 + */ + @PostMapping("/loginCommunityBackage") + public R loginCommunityBackage(@RequestParam("account") String account, @RequestParam("password")String password){ + LoginReturnVO loginReturnVO =loginService.loginCommunityBackage(account,password); + return R.ok(loginReturnVO); + } + /** + * 认证中心刷新token + * @param refreshToken 用户端保存的刷新token + * @return 新的token 和刷新token + */ + @PostMapping("/refreshToken") + public R refreshToken(@RequestParam("refreshToken")String refreshToken){ + Boolean expired = JWTTokenUtil.isTokenExpired(refreshToken); + if (expired) { + throw new TokenException("刷新token已过期"); + } + Claims claims = JWTTokenUtil.getClaimsFromToken(refreshToken); + boolean empty = ObjectUtils.isEmpty(claims); + if (empty) { + throw new TokenException("刷新token校验失败"); + } + String subject = claims.getSubject(); + Integer type = (Integer)claims.get("type"); + boolean empty1 = ObjectUtils.isEmpty(subject); + boolean empty2 = ObjectUtils.isEmpty(type); + if (empty1||empty2) { + throw new TokenException("刷新token校验失败"); + } + LoginUserInfoVO loginUserInfoVO=new LoginUserInfoVO(); + loginUserInfoVO.setUserId(Long.valueOf(subject)); + loginUserInfoVO.setType(type); + String token = JWTTokenUtil.generateToken(loginUserInfoVO); + String refeshToken = JWTTokenUtil.generateRefeshToken(loginUserInfoVO); + LoginReturnVO loginReturnVO=new LoginReturnVO(); + loginReturnVO.setToken(token); + loginReturnVO.setRefreshToken(refeshToken); + return R.ok(loginReturnVO); + } + + /** + * 商家后台登录 + * @param account 账户 + * @param password 密码 + * @return 登录结果 + */ + @PostMapping("/loginShopBackStage") + public R loginShopBackStage(@RequestParam("account") String account, @RequestParam("password")String password){ + LoginReturnVO loginReturnVO =loginService.loginShopBackStage(account,password); + return R.ok(loginReturnVO); + } + +} -- Gitblit v1.7.1