parent
712067979c
commit
52631a0af8
|
@ -232,7 +232,7 @@ public class SysAuthServiceImpl implements SysAuthService {
|
||||||
LoginUser loginUser = this.buildLoginUser(user);
|
LoginUser loginUser = this.buildLoginUser(user);
|
||||||
|
|
||||||
// 绑定社交用户(更新)
|
// 绑定社交用户(更新)
|
||||||
socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser, userTypeEnum);
|
socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser, USER_TYPE_ENUM);
|
||||||
|
|
||||||
// 缓存登录用户到 Redis 中,返回 sessionId 编号
|
// 缓存登录用户到 Redis 中,返回 sessionId 编号
|
||||||
return userSessionCoreService.createUserSession(loginUser, userIp, userAgent);
|
return userSessionCoreService.createUserSession(loginUser, userIp, userAgent);
|
||||||
|
|
|
@ -69,7 +69,6 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
|
||||||
private SysUserSessionCoreService userSessionCoreService;
|
private SysUserSessionCoreService userSessionCoreService;
|
||||||
@MockBean
|
@MockBean
|
||||||
private SysSocialCoreService socialService;
|
private SysSocialCoreService socialService;
|
||||||
private SysSocialService socialService;
|
|
||||||
@MockBean
|
@MockBean
|
||||||
private SysPostService postService;
|
private SysPostService postService;
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@ import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreS
|
||||||
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
|
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
|
||||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||||
import cn.iocoder.yudao.framework.common.util.http.HttpUtils;
|
import cn.iocoder.yudao.framework.common.util.http.HttpUtils;
|
||||||
import cn.iocoder.yudao.framework.social.core.YudaoAuthRequestFactory;
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
import com.xkcoding.justauth.AuthRequestFactory;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import me.zhyd.oauth.model.AuthCallback;
|
import me.zhyd.oauth.model.AuthCallback;
|
||||||
import me.zhyd.oauth.model.AuthResponse;
|
import me.zhyd.oauth.model.AuthResponse;
|
||||||
|
@ -41,7 +41,7 @@ import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString
|
||||||
public class SysSocialCoreServiceImpl implements SysSocialCoreService {
|
public class SysSocialCoreServiceImpl implements SysSocialCoreService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private YudaoAuthRequestFactory yudaoAuthRequestFactory;
|
private AuthRequestFactory authRequestFactory;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private SysSocialAuthUserRedisDAO authSocialUserRedisDAO;
|
private SysSocialAuthUserRedisDAO authSocialUserRedisDAO;
|
||||||
|
@ -52,7 +52,7 @@ public class SysSocialCoreServiceImpl implements SysSocialCoreService {
|
||||||
@Override
|
@Override
|
||||||
public String getAuthorizeUrl(Integer type, String redirectUri) {
|
public String getAuthorizeUrl(Integer type, String redirectUri) {
|
||||||
// 获得对应的 AuthRequest 实现
|
// 获得对应的 AuthRequest 实现
|
||||||
AuthRequest authRequest = yudaoAuthRequestFactory.get(SysSocialTypeEnum.valueOfType(type).getSource());
|
AuthRequest authRequest = authRequestFactory.get(SysSocialTypeEnum.valueOfType(type).getSource());
|
||||||
// 生成跳转地址
|
// 生成跳转地址
|
||||||
String authorizeUri = authRequest.authorize(AuthStateUtils.createState());
|
String authorizeUri = authRequest.authorize(AuthStateUtils.createState());
|
||||||
return HttpUtils.replaceUrlQuery(authorizeUri, "redirect_uri", redirectUri);
|
return HttpUtils.replaceUrlQuery(authorizeUri, "redirect_uri", redirectUri);
|
||||||
|
@ -161,7 +161,7 @@ public class SysSocialCoreServiceImpl implements SysSocialCoreService {
|
||||||
* @return 授权的用户
|
* @return 授权的用户
|
||||||
*/
|
*/
|
||||||
private AuthUser getAuthUser0(Integer type, AuthCallback authCallback) {
|
private AuthUser getAuthUser0(Integer type, AuthCallback authCallback) {
|
||||||
AuthRequest authRequest = yudaoAuthRequestFactory.get(SysSocialTypeEnum.valueOfType(type).getSource());
|
AuthRequest authRequest = authRequestFactory.get(SysSocialTypeEnum.valueOfType(type).getSource());
|
||||||
AuthResponse<?> authResponse = authRequest.login(authCallback);
|
AuthResponse<?> authResponse = authRequest.login(authCallback);
|
||||||
log.info("[getAuthUser0][请求社交平台 type({}) request({}) response({})]", type, toJsonString(authCallback),
|
log.info("[getAuthUser0][请求社交平台 type({}) request({}) response({})]", type, toJsonString(authCallback),
|
||||||
toJsonString(authResponse));
|
toJsonString(authResponse));
|
||||||
|
|
|
@ -8,3 +8,4 @@ DELETE FROM "sys_user_session";
|
||||||
DELETE FROM "sys_dict_data";
|
DELETE FROM "sys_dict_data";
|
||||||
DELETE FROM "sys_sms_template";
|
DELETE FROM "sys_sms_template";
|
||||||
DELETE FROM "sys_sms_log";
|
DELETE FROM "sys_sms_log";
|
||||||
|
DELETE FROM "sys_social_user";
|
||||||
|
|
|
@ -177,3 +177,23 @@ CREATE TABLE IF NOT EXISTS `sys_login_log` (
|
||||||
"tenant_id" bigint not null default '0',
|
"tenant_id" bigint not null default '0',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) COMMENT ='系统访问记录';
|
) COMMENT ='系统访问记录';
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS "sys_social_user" (
|
||||||
|
"id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
|
||||||
|
"user_id" bigint NOT NULL,
|
||||||
|
"user_type" tinyint NOT NULL DEFAULT '0',
|
||||||
|
"type" tinyint NOT NULL,
|
||||||
|
"openid" varchar(32) NOT NULL,
|
||||||
|
"token" varchar(256) DEFAULT NULL,
|
||||||
|
"union_id" varchar(32) NOT NULL,
|
||||||
|
"raw_token_info" varchar(1024) NOT NULL,
|
||||||
|
"nickname" varchar(32) NOT NULL,
|
||||||
|
"avatar" varchar(255) DEFAULT NULL,
|
||||||
|
"raw_user_info" varchar(1024) NOT NULL,
|
||||||
|
"creator" varchar(64) DEFAULT '',
|
||||||
|
"create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updater" varchar(64) DEFAULT '',
|
||||||
|
"update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"deleted" bit NOT NULL DEFAULT FALSE,
|
||||||
|
PRIMARY KEY ("id")
|
||||||
|
) COMMENT '社交用户';
|
||||||
|
|
|
@ -74,7 +74,6 @@ public class SysAuthServiceImpl implements SysAuthService {
|
||||||
@Resource
|
@Resource
|
||||||
private SysSocialCoreService socialService;
|
private SysSocialCoreService socialService;
|
||||||
|
|
||||||
private SysSocialService socialService;
|
|
||||||
@Resource
|
@Resource
|
||||||
private StringRedisTemplate stringRedisTemplate;
|
private StringRedisTemplate stringRedisTemplate;
|
||||||
@Resource
|
@Resource
|
||||||
|
|
|
@ -4,6 +4,7 @@ import cn.iocoder.yudao.userserver.modules.member.controller.user.SysUserProfile
|
||||||
import cn.iocoder.yudao.userserver.modules.member.service.user.MbrUserService;
|
import cn.iocoder.yudao.userserver.modules.member.service.user.MbrUserService;
|
||||||
import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService;
|
import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
|
@ -46,6 +47,7 @@ public class SysUserProfileControllerTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Ignore
|
||||||
public void testUpdateMobile_success() throws Exception {
|
public void testUpdateMobile_success() throws Exception {
|
||||||
//模拟接口调用
|
//模拟接口调用
|
||||||
this.mockMvc.perform(post("/system/user/profile/update-mobile")
|
this.mockMvc.perform(post("/system/user/profile/update-mobile")
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package cn.iocoder.yudao.userserver.modules.system.controller;
|
package cn.iocoder.yudao.userserver.modules.system.controller;
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialService;
|
import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService;
|
||||||
import cn.iocoder.yudao.userserver.modules.system.controller.auth.SysAuthController;
|
import cn.iocoder.yudao.userserver.modules.system.controller.auth.SysAuthController;
|
||||||
import cn.iocoder.yudao.userserver.modules.system.service.auth.SysAuthService;
|
import cn.iocoder.yudao.userserver.modules.system.service.auth.SysAuthService;
|
||||||
import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService;
|
import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService;
|
||||||
|
@ -14,9 +14,7 @@ import org.springframework.test.web.servlet.MockMvc;
|
||||||
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
|
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
|
||||||
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||||
|
|
||||||
import static org.springframework.http.HttpHeaders.AUTHORIZATION;
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
|
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -36,8 +34,7 @@ public class SysAuthControllerTest {
|
||||||
@Mock
|
@Mock
|
||||||
private SysSmsCodeService smsCodeService;
|
private SysSmsCodeService smsCodeService;
|
||||||
@Mock
|
@Mock
|
||||||
private SysSocialService socialService;
|
private SysSocialCoreService socialService;
|
||||||
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
|
@ -50,26 +47,22 @@ public class SysAuthControllerTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testResetPassword_success() throws Exception {
|
public void testResetPassword_success() throws Exception {
|
||||||
//模拟接口调用
|
// 模拟接口调用
|
||||||
this.mockMvc.perform(post("/reset-password")
|
this.mockMvc.perform(post("/reset-password")
|
||||||
.contentType(MediaType.APPLICATION_JSON)
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
.content("{\"password\":\"1123\",\"code\":\"123456\"}}"))
|
.content("{\"password\":\"1123\",\"code\":\"123456\"}}"))
|
||||||
.andExpect(status().isOk())
|
.andExpect(status().isOk())
|
||||||
.andDo(MockMvcResultHandlers.print());
|
.andDo(MockMvcResultHandlers.print());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdatePassword_success() throws Exception {
|
public void testUpdatePassword_success() throws Exception {
|
||||||
//模拟接口调用
|
// 模拟接口调用
|
||||||
this.mockMvc.perform(post("/update-password")
|
this.mockMvc.perform(post("/update-password")
|
||||||
.contentType(MediaType.APPLICATION_JSON)
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
.content("{\"password\":\"1123\",\"code\":\"123456\",\"oldPassword\":\"1123\"}}"))
|
.content("{\"password\":\"1123\",\"code\":\"123456\",\"oldPassword\":\"1123\"}}"))
|
||||||
.andExpect(status().isOk())
|
.andExpect(status().isOk())
|
||||||
.andDo(MockMvcResultHandlers.print());
|
.andDo(MockMvcResultHandlers.print());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ package cn.iocoder.yudao.userserver.modules.system.service;
|
||||||
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
|
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
|
||||||
import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;
|
import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;
|
||||||
import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;
|
import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;
|
||||||
import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialService;
|
import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService;
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
|
import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
|
||||||
import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
|
import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
|
||||||
|
@ -53,7 +53,7 @@ public class SysAuthServiceTest extends BaseDbAndRedisUnitTest {
|
||||||
@MockBean
|
@MockBean
|
||||||
private SysUserSessionCoreService userSessionCoreService;
|
private SysUserSessionCoreService userSessionCoreService;
|
||||||
@MockBean
|
@MockBean
|
||||||
private SysSocialService socialService;
|
private SysSocialCoreService socialService;
|
||||||
@Resource
|
@Resource
|
||||||
private StringRedisTemplate stringRedisTemplate;
|
private StringRedisTemplate stringRedisTemplate;
|
||||||
@MockBean
|
@MockBean
|
||||||
|
|
|
@ -14,6 +14,7 @@ CREATE TABLE IF NOT EXISTS "mbr_user" (
|
||||||
"updater" varchar(64) NULL DEFAULT '' COMMENT '更新者',
|
"updater" varchar(64) NULL DEFAULT '' COMMENT '更新者',
|
||||||
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
"deleted" bit(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
|
"deleted" bit(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
|
||||||
|
"tenant_id" bigint not null default '0',
|
||||||
PRIMARY KEY ("id")
|
PRIMARY KEY ("id")
|
||||||
) COMMENT '会员表';
|
) COMMENT '会员表';
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue