| | |
| | | import me.zhyd.oauth.model.AuthResponse; |
| | | import me.zhyd.oauth.request.AuthRequest; |
| | | import me.zhyd.oauth.utils.AuthStateUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.jeecg.common.api.vo.Result; |
| | | import org.jeecg.common.constant.CommonConstant; |
| | | import org.jeecg.common.system.util.JwtUtil; |
| | |
| | | import org.jeecg.common.util.RedisUtil; |
| | | import org.jeecg.common.util.RestUtil; |
| | | import org.jeecg.common.util.oConvertUtils; |
| | | import org.jeecg.config.shiro.JwtToken; |
| | | import org.jeecg.config.thirdapp.ThirdAppConfig; |
| | | import org.jeecg.config.thirdapp.ThirdAppTypeItemVo; |
| | | import org.jeecg.modules.base.service.BaseCommonService; |
| | |
| | | @Autowired |
| | | private ThirdAppDingtalkServiceImpl thirdAppDingtalkService; |
| | | |
| | | /**token有效时间,目前现场要求企业微信有效时间*/ |
| | | public static final long EXPIRE_TIME = 30L * 24 * 60 * 60 * 1000; |
| | | |
| | | @RequestMapping("/render/{source}") |
| | | public void render(@PathVariable("source") String source, HttpServletResponse response) throws IOException { |
| | | log.info("第三方登录进入render:" + source); |
| | |
| | | String sysUserId = user.getSysUserId(); |
| | | SysUser sysUser = sysUserService.getById(sysUserId); |
| | | String token = saveToken(sysUser); |
| | | // 使用token进行Shiro登录 |
| | | JwtToken jwtToken = new JwtToken(token); |
| | | SecurityUtils.getSubject().login(jwtToken); // 此行代码会触发Realm的认证方法,将用户信息存入Shiro的会话 |
| | | modelMap.addAttribute("token", token); |
| | | }else{ |
| | | modelMap.addAttribute("token", "绑定手机号,"+""+uuid); |
| | |
| | | String token = JwtUtil.sign(user.getUsername(), user.getPassword()); |
| | | redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); |
| | | // 设置超时时间 |
| | | redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME * 2 / 1000); |
| | | redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, EXPIRE_TIME / 1000); |
| | | return token; |
| | | } |
| | | |
| | |
| | | // 企业的CorpID |
| | | builder.append("?appid=").append(config.getClientId()); |
| | | // 授权后重定向的回调链接地址,请使用urlencode对链接进行处理 |
| | | String redirectUri ="http://houjie.xalxzn.com:8866/jeecg-boot/sys/thirdLogin/oauth2/wechat_enterprise/callback"; |
| | | String redirectUri = RestUtil.getBaseUrl() + "/sys/thirdLogin/oauth2/wechat_enterprise/callback"; |
| | | builder.append("&redirect_uri=").append(URLEncoder.encode(redirectUri, "UTF-8")); |
| | | // 返回类型,此时固定为:code |
| | | builder.append("&response_type=code"); |
| | |
| | | } |
| | | |
| | | String token = saveToken(loginUser); |
| | | // ============ 新增 Shiro 登录逻辑 ============ |
| | | JwtToken jwtToken = new JwtToken(token); |
| | | SecurityUtils.getSubject().login(jwtToken); |
| | | state += "/h5/oauth2-app/login?oauth2LoginToken=" + URLEncoder.encode(token, "UTF-8"); |
| | | state += "/oauth2-app/login?oauth2LoginToken=" + URLEncoder.encode(token, "UTF-8"); |
| | | //update-begin---author:wangshuai ---date:20220613 for:[issues/I5BOUF]oauth2 钉钉无法登录------------ |
| | | state += "&thirdType=" + source; |
| | | //state += "&thirdType=" + "wechat_enterprise"; |
| | | if (redirect != null && redirect.length() > 0) { |
| | | state += "&" + redirect; |
| | | state += "&redirect=" + redirect; |
| | | } |
| | | //update-end-author:taoyan date:2022-6-30 for: 工作流发送消息 点击消息链接跳转办理页面 |
| | | |