perf:调整授权登录

This commit is contained in:
曾文豪
2023-01-11 15:34:15 +08:00
parent 603b5abdfe
commit b49e736f0d
8 changed files with 155 additions and 60 deletions

View File

@@ -4,8 +4,9 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tiesheng.core.mapper.CorePlatformUniqueMapper;
import com.tiesheng.core.pojos.dao.CorePlatformUnique;
import com.tiesheng.login.service.TieshengLoginConfigurer;
import com.tiesheng.login.config.token.bean.TokenBean;
import com.tiesheng.login.pojos.DoLoginInfo;
import com.tiesheng.login.service.TieshengLoginConfigurer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -24,11 +25,18 @@ public class CorePlatformUniqueService extends TsServiceBase<CorePlatformUniqueM
CoreLogService coreLogService;
@Override
public TokenBean doLogin(String appId, String uniqueId, String platfrom, String info) {
public TokenBean doLogin(DoLoginInfo loginInfo) {
CorePlatformUnique platformUnique = getByAppAndUnique(appId, uniqueId, platfrom);
platformUnique.setInfo(info);
TokenBean tokenBean = tieshengWebConfigurer.loginConfigurer().doLogin(platformUnique);
CorePlatformUnique platformUnique = getOneByColumn("unique_id", loginInfo.getUnique());
if (platformUnique == null) {
platformUnique = new CorePlatformUnique();
platformUnique.setAppId(loginInfo.getAppId());
platformUnique.setPlatform(loginInfo.getPlatform());
platformUnique.setUniqueId(loginInfo.getUnique());
}
platformUnique.setInfo(loginInfo.getInfo());
TokenBean tokenBean = tieshengWebConfigurer.loginConfigurer().doLogin(platformUnique, loginInfo.getTo());
if (tokenBean != null) {
platformUnique.setUserId(tokenBean.getId());
platformUnique.setIsDeleted(0);
@@ -41,32 +49,8 @@ public class CorePlatformUniqueService extends TsServiceBase<CorePlatformUniqueM
}
@Override
public void onLoginRedirect(TokenBean bean, String extra, HttpServletResponse response) {
tieshengWebConfigurer.loginConfigurer().redirect(bean, extra, response);
}
/**
* 通过appId获取登录对象
*
* @param appId
* @param uniqueId
* @return
*/
private CorePlatformUnique getByAppAndUnique(String appId, String uniqueId, String platform) {
QueryWrapper<CorePlatformUnique> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("app_id", appId);
queryWrapper.eq("unique_id", uniqueId);
queryWrapper.eq("platform", platform);
queryWrapper.last("limit 1");
CorePlatformUnique platformUnique = getOne(queryWrapper);
if (platformUnique == null) {
platformUnique = new CorePlatformUnique();
platformUnique.setAppId(appId);
platformUnique.setUniqueId(uniqueId);
platformUnique.setPlatform(platform);
}
return platformUnique;
public void onLoginRedirect(TokenBean bean, String to, String extra, HttpServletResponse response) {
tieshengWebConfigurer.loginConfigurer().redirect(bean, to, extra, response);
}

View File

@@ -71,7 +71,7 @@ public interface TieshengWebConfigurer {
* @param platformUnique
* @return
*/
TokenBean doLogin(CorePlatformUnique platformUnique);
TokenBean doLogin(CorePlatformUnique platformUnique, String to);
/**
@@ -81,7 +81,7 @@ public interface TieshengWebConfigurer {
* @param extra
* @param response
*/
void redirect(TokenBean bean, String extra, HttpServletResponse response);
void redirect(TokenBean bean, String to, String extra, HttpServletResponse response);
}