New file |
| | |
| | | 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 密码 |
| | | * @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); |
| | | } |
| | | |
| | | } |