添加第三方登录,判断是否为当前用户信息

This commit is contained in:
pikachu1995@126.com 2023-03-10 06:46:21 +08:00
parent 0261b7e9ab
commit 606f9d2ccf
2 changed files with 12 additions and 2 deletions

View File

@ -11,6 +11,7 @@ import cn.lili.modules.connect.service.ConnectService;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.system.service.SettingService; import cn.lili.modules.system.service.SettingService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -22,6 +23,7 @@ import org.springframework.stereotype.Service;
* @version v1.0 * @version v1.0
* 2022-01-11 11:08 * 2022-01-11 11:08
*/ */
@Slf4j
@Service @Service
public class MemberExecute implements MemberLoginEvent, MemberConnectLoginEvent { public class MemberExecute implements MemberLoginEvent, MemberConnectLoginEvent {
@Autowired @Autowired
@ -38,13 +40,16 @@ public class MemberExecute implements MemberLoginEvent, MemberConnectLoginEvent
@Override @Override
public void memberConnectLogin(Member member, ConnectAuthUser authUser) { public void memberConnectLogin(Member member, ConnectAuthUser authUser) {
log.info("unionid:"+authUser.getToken().getUnionId());
log.info("openid:"+authUser.getUuid());
//保存UnionID //保存UnionID
if (StrUtil.isNotBlank(authUser.getToken().getUnionId())) { if (StrUtil.isNotBlank(authUser.getToken().getUnionId())) {
connectService.loginBindUser(member.getId(), authUser.getToken().getUnionId(), authUser.getSource()); connectService.loginBindUser(member.getId(), authUser.getToken().getUnionId(), authUser.getSource());
} }
//保存OpenID //保存OpenID
if (StrUtil.isNotBlank(authUser.getUuid())) { if (StrUtil.isNotBlank(authUser.getUuid())) {
log.info("authUser.getSource():"+authUser.getSource());
log.info("authUser.getType():"+authUser.getType());
SourceEnum sourceEnum = SourceEnum.getSourceEnum(ConnectEnum.valueOf(authUser.getSource()), ClientTypeEnum.valueOf(authUser.getType())); SourceEnum sourceEnum = SourceEnum.getSourceEnum(ConnectEnum.valueOf(authUser.getSource()), ClientTypeEnum.valueOf(authUser.getType()));
connectService.loginBindUser(member.getId(), authUser.getUuid(), sourceEnum.name()); connectService.loginBindUser(member.getId(), authUser.getUuid(), sourceEnum.name());
} }

View File

@ -227,9 +227,14 @@ public class ConnectServiceImpl extends ServiceImpl<ConnectMapper, Connect> impl
Connect connect = this.queryConnect( Connect connect = this.queryConnect(
ConnectQueryDTO.builder().unionId(unionId).unionType(type).build() ConnectQueryDTO.builder().unionId(unionId).unionType(type).build()
); );
//如果未绑定则直接绑定
if (connect == null) { if (connect == null) {
connect = new Connect(userId, unionId, type); connect = new Connect(userId, unionId, type);
this.save(connect); this.save(connect);
//如果已绑定不是当前用户信息则删除绑定信息重新绑定
} else if (!connect.getUserId().equals(userId)) {
this.removeById(connect.getId());
this.loginBindUser(userId, unionId, type);
} }
} }