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

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.service.MemberService;
import cn.lili.modules.system.service.SettingService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -22,6 +23,7 @@ import org.springframework.stereotype.Service;
* @version v1.0
* 2022-01-11 11:08
*/
@Slf4j
@Service
public class MemberExecute implements MemberLoginEvent, MemberConnectLoginEvent {
@Autowired
@ -38,13 +40,16 @@ public class MemberExecute implements MemberLoginEvent, MemberConnectLoginEvent
@Override
public void memberConnectLogin(Member member, ConnectAuthUser authUser) {
log.info("unionid:"+authUser.getToken().getUnionId());
log.info("openid:"+authUser.getUuid());
//保存UnionID
if (StrUtil.isNotBlank(authUser.getToken().getUnionId())) {
connectService.loginBindUser(member.getId(), authUser.getToken().getUnionId(), authUser.getSource());
}
//保存OpenID
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()));
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(
ConnectQueryDTO.builder().unionId(unionId).unionType(type).build()
);
//如果未绑定则直接绑定
if (connect == null) {
connect = new Connect(userId, unionId, type);
this.save(connect);
//如果已绑定不是当前用户信息则删除绑定信息重新绑定
} else if (!connect.getUserId().equals(userId)) {
this.removeById(connect.getId());
this.loginBindUser(userId, unionId, type);
}
}