New file |
| | |
| | | package com.panzhihua.auth.api; |
| | | |
| | | import com.panzhihua.auth.model.dos.LoginBody; |
| | | 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.*; |
| | | |
| | | 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 loginBody 账户 |
| | | * @return 登录结果 |
| | | * @author manailin |
| | | * @date 2021-5-13 10:56 |
| | | */ |
| | | @PostMapping("/loginBigDataBackStage") |
| | | public R loginBigDataBackStage(@RequestBody LoginBody loginBody) { |
| | | String account = loginBody.getAccount(); |
| | | String password = loginBody.getPassword(); |
| | | if (ObjectUtils.isEmpty(account) || ObjectUtils.isEmpty(password)) { |
| | | 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); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 网格综治APP登录 |
| | | * |
| | | * @param account 账户 |
| | | * @param password 密码 |
| | | * @return 登录结果 |
| | | */ |
| | | @PostMapping("/loginGridApp") |
| | | public R loginGridApp(@RequestParam("account") String account, @RequestParam("password") String password) { |
| | | LoginReturnVO loginReturnVO = loginService.loginGridApp(account, password); |
| | | return R.ok(loginReturnVO); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 网格综治后台登录 |
| | | * |
| | | * @param account 账户 |
| | | * @param password 密码 |
| | | * @return 登录结果 |
| | | */ |
| | | @PostMapping("/loginGridBackstage") |
| | | public R loginGridBackstage(@RequestParam("account") String account, @RequestParam("password") String password) { |
| | | LoginReturnVO loginReturnVO = loginService.loginGridBackstage(account, password); |
| | | return R.ok(loginReturnVO); |
| | | } |
| | | |
| | | } |