package com.jilongda.optometry.controller; import com.jilongda.common.basic.ApiResult; import com.jilongda.common.redis.RedisAutoTemplate; import com.jilongda.common.security.SecurityUtils; import com.jilongda.common.utils.WebUtils; import com.jilongda.optometry.model.TAppUser; import com.jilongda.optometry.service.SecUserService; import com.jilongda.optometry.service.TAppUserService; import com.jilongda.optometry.wx.body.resp.Code2SessionRespBody; import com.jilongda.optometry.wx.body.resq.Code2SessionResqBody; import com.jilongda.optometry.wx.pojo.AppletUserDecodeData; import com.jilongda.optometry.wx.pojo.AppletUserEncrypteData; import com.jilongda.optometry.wx.utils.WeixinProperties; import com.jilongda.optometry.wx.utils.WxAppletTools; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; import java.util.Map; /** *

* 会员表 前端控制器 *

* * @author xiaochen * @since 2021-07-28 */ @Slf4j @Api(tags = "用户登录相关") @RestController @RequestMapping("/") public class LoginController { @Autowired private SecurityUtils securityUtils; @Autowired private AuthenticationManager authenticationManager; @Autowired private RedisAutoTemplate redisAutoTemplate; @Autowired private TAppUserService appUserService; @Autowired private WeixinProperties wxConfig; @Autowired private RestTemplate wxRestTemplate; @Autowired private SecUserService secUserService; @ApiOperation(value = "通过code获得openid,获取用户信息",tags = {"微信小程序登录"}) @PostMapping("/openIdByJsCode") public ApiResult> openIdByJsCode(@RequestBody AppletUserEncrypteData data) { // secUserService.lambdaQuery().eq(TAppUser::getOpenId, data.getOpenId()).one(); Map tokenInfos = securityUtils.login(null, null, authenticationManager, TAppUser.class, 3); return ApiResult.success(tokenInfos); } @ApiOperation("退出登录") @GetMapping("logout") public ApiResult logout() { boolean flag = securityUtils.invalidateToken(WebUtils.request()); if (flag) { return ApiResult.success("退出成功"); } return ApiResult.success(); } }