Merge branch 'warm-flow-future' of https://gitee.com/dromara/RuoYi-Vue-Plus into warm-flow-future
This commit is contained in:
commit
1383a3a3b1
2
pom.xml
2
pom.xml
@ -36,7 +36,7 @@
|
|||||||
<mapstruct-plus.lombok.version>0.2.0</mapstruct-plus.lombok.version>
|
<mapstruct-plus.lombok.version>0.2.0</mapstruct-plus.lombok.version>
|
||||||
<lombok.version>1.18.34</lombok.version>
|
<lombok.version>1.18.34</lombok.version>
|
||||||
<bouncycastle.version>1.76</bouncycastle.version>
|
<bouncycastle.version>1.76</bouncycastle.version>
|
||||||
<justauth.version>1.16.6</justauth.version>
|
<justauth.version>1.16.7</justauth.version>
|
||||||
<!-- 离线IP地址定位库 -->
|
<!-- 离线IP地址定位库 -->
|
||||||
<ip2region.version>2.7.0</ip2region.version>
|
<ip2region.version>2.7.0</ip2region.version>
|
||||||
|
|
||||||
|
@ -5,9 +5,17 @@ import cn.dev33.satoken.stp.StpUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import me.zhyd.oauth.config.AuthConfig;
|
||||||
|
import me.zhyd.oauth.model.AuthCallback;
|
||||||
|
import me.zhyd.oauth.model.AuthResponse;
|
||||||
|
import me.zhyd.oauth.model.AuthToken;
|
||||||
|
import me.zhyd.oauth.model.AuthUser;
|
||||||
|
import me.zhyd.oauth.request.AuthRequest;
|
||||||
|
import me.zhyd.oauth.request.AuthWechatMiniProgramRequest;
|
||||||
import org.dromara.common.core.constant.SystemConstants;
|
import org.dromara.common.core.constant.SystemConstants;
|
||||||
import org.dromara.common.core.domain.model.XcxLoginBody;
|
import org.dromara.common.core.domain.model.XcxLoginBody;
|
||||||
import org.dromara.common.core.domain.model.XcxLoginUser;
|
import org.dromara.common.core.domain.model.XcxLoginUser;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
import org.dromara.common.core.utils.ValidatorUtils;
|
import org.dromara.common.core.utils.ValidatorUtils;
|
||||||
import org.dromara.common.json.utils.JsonUtils;
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
@ -39,12 +47,24 @@ public class XcxAuthStrategy implements IAuthStrategy {
|
|||||||
// 多个小程序识别使用
|
// 多个小程序识别使用
|
||||||
String appid = loginBody.getAppid();
|
String appid = loginBody.getAppid();
|
||||||
|
|
||||||
// todo 以下自行实现
|
|
||||||
// 校验 appid + appsrcret + xcxCode 调用登录凭证校验接口 获取 session_key 与 openid
|
// 校验 appid + appsrcret + xcxCode 调用登录凭证校验接口 获取 session_key 与 openid
|
||||||
String openid = "";
|
AuthRequest authRequest = new AuthWechatMiniProgramRequest(AuthConfig.builder()
|
||||||
|
.clientId(appid).clientSecret("自行填写密钥 可根据不同appid填入不同密钥")
|
||||||
|
.ignoreCheckRedirectUri(true).ignoreCheckState(true).build());
|
||||||
|
AuthCallback authCallback = new AuthCallback();
|
||||||
|
authCallback.setCode(xcxCode);
|
||||||
|
AuthResponse<AuthUser> resp = authRequest.login(authCallback);
|
||||||
|
String openid, unionId;
|
||||||
|
if (resp.ok()) {
|
||||||
|
AuthToken token = resp.getData().getToken();
|
||||||
|
openid = token.getOpenId();
|
||||||
|
// 微信小程序只有关联到微信开放平台下之后才能获取到 unionId,因此unionId不一定能返回。
|
||||||
|
unionId = token.getUnionId();
|
||||||
|
} else {
|
||||||
|
throw new ServiceException(resp.getMsg());
|
||||||
|
}
|
||||||
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
|
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
|
||||||
SysUserVo user = loadUserByOpenid(openid);
|
SysUserVo user = loadUserByOpenid(openid);
|
||||||
|
|
||||||
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||||
XcxLoginUser loginUser = new XcxLoginUser();
|
XcxLoginUser loginUser = new XcxLoginUser();
|
||||||
loginUser.setTenantId(user.getTenantId());
|
loginUser.setTenantId(user.getTenantId());
|
||||||
|
@ -38,7 +38,7 @@ public class SysDataScopeServiceImpl implements ISysDataScopeService {
|
|||||||
* @param roleId 角色Id
|
* @param roleId 角色Id
|
||||||
* @return 部门Id组
|
* @return 部门Id组
|
||||||
*/
|
*/
|
||||||
@Cacheable(cacheNames = CacheNames.SYS_ROLE_CUSTOM, key = "#roleId")
|
@Cacheable(cacheNames = CacheNames.SYS_ROLE_CUSTOM, key = "#roleId", condition = "#roleId != null")
|
||||||
@Override
|
@Override
|
||||||
public String getRoleCustom(Long roleId) {
|
public String getRoleCustom(Long roleId) {
|
||||||
if (ObjectUtil.isNull(roleId)) {
|
if (ObjectUtil.isNull(roleId)) {
|
||||||
@ -60,7 +60,7 @@ public class SysDataScopeServiceImpl implements ISysDataScopeService {
|
|||||||
* @param deptId 部门Id
|
* @param deptId 部门Id
|
||||||
* @return 部门Id组
|
* @return 部门Id组
|
||||||
*/
|
*/
|
||||||
@Cacheable(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, key = "#deptId")
|
@Cacheable(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, key = "#deptId", condition = "#deptId != null")
|
||||||
@Override
|
@Override
|
||||||
public String getDeptAndChild(Long deptId) {
|
public String getDeptAndChild(Long deptId) {
|
||||||
if (ObjectUtil.isNull(deptId)) {
|
if (ObjectUtil.isNull(deptId)) {
|
||||||
|
@ -23,6 +23,11 @@
|
|||||||
<artifactId>ruoyi-common-sse</artifactId>
|
<artifactId>ruoyi-common-sse</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-doc</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>ruoyi-common-mail</artifactId>
|
<artifactId>ruoyi-common-mail</artifactId>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user