提交 9b90d544 作者: zhenjie

小程序码临时登录

上级 482a406a
......@@ -31,23 +31,22 @@ public class TokenCheckHandleInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//扫码登录还没做好,暂时先注释
// String requestURI = request.getRequestURI();
// //根据uri确认是否要拦截
// if (!shouldFilter(requestURI)){
// return true;
// }
// String token = request.getHeader("token");
// String tokenJson = stringRedisTemplate.opsForValue().get(token);
//
// if (StringUtils.isBlank(tokenJson)){
// exceptionProcess(response);
// return false;
// }
// LoginSuccessDTO loginSuccessDTO = JSONObject.parseObject(tokenJson, LoginSuccessDTO.class);
// if (loginSuccessDTO != null){
// request.setAttribute("userAccountId", loginSuccessDTO.getUserAccountId());
// }
String requestURI = request.getRequestURI();
//根据uri确认是否要拦截
if (!shouldFilter(requestURI)){
return true;
}
String token = request.getHeader("token");
String tokenJson = stringRedisTemplate.opsForValue().get(token);
if (StringUtils.isBlank(tokenJson)){
exceptionProcess(response);
return false;
}
LoginSuccessDTO loginSuccessDTO = JSONObject.parseObject(tokenJson, LoginSuccessDTO.class);
if (loginSuccessDTO != null){
request.setAttribute("userAccountId", loginSuccessDTO.getUserAccountId());
}
return true;
}
......
package com.mmc.iuav.user.controller;
import com.mmc.iuav.group.Insert;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.vo.AppUserSucVO;
import com.mmc.iuav.user.model.vo.WxLoginVO;
import com.mmc.iuav.user.service.AuthService;
import com.mmc.iuav.user.service.UserAccountService;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* @author: zj
* @Date: 2023/5/29 14:37
*/
@Api(tags = "临时登录授权")
@RequestMapping("/temp-auth/")
@RestController
public class TempLoginController extends BaseController{
@Autowired
private AuthService authService;
@ApiOperation(value = "小程序确认登录")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@GetMapping("tempConfirmLogin")
public ResultBody tempConfirmLogin(HttpServletRequest request, @ApiParam(value = "临时登录code",example = "kj6d9wcxyp92jajugdnc") @RequestParam String randomLoginCode){
return authService.tempConfirmLogin(this.getUserLoginInfoFromRedis(request), randomLoginCode);
}
@ApiOperation(value = "查询登录信息")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@GetMapping("getLoginInfo")
public ResultBody getLoginInfo(@ApiParam(value = "临时登录code",example = "kj6d9wcxyp92jajugdnc") @RequestParam String randomLoginCode){
return authService.getLoginInfo(randomLoginCode);
}
}
package com.mmc.iuav.user.service;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.LoginUserQO;
import com.mmc.iuav.user.model.vo.WxLoginVO;
......@@ -29,4 +30,19 @@ public interface AuthService {
* @return
*/
ResultBody testAppletLogin(String unionId);
/**
* 小程序确认登录
* @param loginSuccessDTO
* @param randomLoginCode
* @return
*/
ResultBody tempConfirmLogin(LoginSuccessDTO loginSuccessDTO, String randomLoginCode);
/**
* 获取用登录信息
* @param randomLoginCode
* @return
*/
ResultBody getLoginInfo(String randomLoginCode);
}
......@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.mmc.iuav.auth.JwtConstant;
import com.mmc.iuav.auth.JwtUtil;
import com.mmc.iuav.general.CodeUtil;
import com.mmc.iuav.http.BizException;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.response.ResultEnum;
import com.mmc.iuav.user.auth.PwdUtil;
......@@ -171,4 +172,22 @@ public class AuthServiceImpl implements AuthService {
}
return ResultBody.error(ResultEnum.APPLET_LOGIN_ERROR);
}
@Override
public ResultBody tempConfirmLogin(LoginSuccessDTO loginSuccessDTO, String randomLoginCode) {
stringRedisTemplate.opsForValue().set(
randomLoginCode, JSONObject.toJSONString(loginSuccessDTO),
JwtConstant.EXPIRATION, TimeUnit.MILLISECONDS);
return ResultBody.success();
}
@Override
public ResultBody getLoginInfo(String randomLoginCode) {
String json = stringRedisTemplate.opsForValue().get(randomLoginCode);
if (org.apache.commons.lang3.StringUtils.isBlank(json)){
throw new BizException(ResultEnum.LOGIN_ACCOUNT_STATUS_ERROR);
}
LoginSuccessDTO loginSuccessDTO = JSONObject.parseObject(json, LoginSuccessDTO.class);
return ResultBody.success(loginSuccessDTO);
}
}
......@@ -10,3 +10,5 @@ data-filter:
- /userapp/auth/backEndLogin
- /userapp/auth/testAppletLogin
- /userapp/cooperation/listTag
- /userapp/temp-auth/getLoginInfo
- /userapp/wx/getAppletQRCode
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论