Commit 8d9cfeda by 郭倩芳

common 统一鉴权

parent 17582067
...@@ -95,7 +95,7 @@ public class SobotLoginTools { ...@@ -95,7 +95,7 @@ public class SobotLoginTools {
public void setHostModel(HostModel newHostModel) { public void setHostModel(HostModel newHostModel) {
HostManager.getInstance().deleteAll(); HostManager.getInstance().deleteAll();
if (newHostModel != null) { if (newHostModel != null) {
if ((newHostModel.getHost().contains("api-c")) && (!newHostModel.getHost().contains("api-c.sobot.com/text") && !newHostModel.getHost().contains("api-c.soboten.com/text"))) { if ((newHostModel.getHost().contains("api-c")) && (!newHostModel.getHost().contains("api-c.sobot.com/text") && !newHostModel.getHost().contains("api-c.soboten.com/text"))) {
if (!newHostModel.getHost().endsWith("/")) { if (!newHostModel.getHost().endsWith("/")) {
newHostModel.setHost(newHostModel.getHost() + "/text/"); newHostModel.setHost(newHostModel.getHost() + "/text/");
} else { } else {
...@@ -206,11 +206,11 @@ public class SobotLoginTools { ...@@ -206,11 +206,11 @@ public class SobotLoginTools {
* @param openApiHost * @param openApiHost
* @param loginAcount 登录账号 * @param loginAcount 登录账号
* @param loginPwd 登录密码 * @param loginPwd 登录密码
* @param factorVerifyCode 开启双认证后,邮箱验证码 * @param factorVerifyCode 开启双认证后,邮箱验证码
* @param paramsMap 单独执行在线登录逻辑 参数 * @param paramsMap 单独执行在线登录逻辑 参数
* @param resultBlock * @param resultBlock
*/ */
public void doLogin(final Object cancelTag, final Context mContext, final boolean isAppOrOnlineLogin, final String host, final String openApiHost, final String loginAcount, final String loginPwd,String factorVerifyCode, final Map<String, Object> paramsMap, final SobotResultBlock resultBlock) { public void doLogin(final Object cancelTag, final Context mContext, final boolean isAppOrOnlineLogin, final String host, final String openApiHost, final String loginAcount, final String loginPwd, String factorVerifyCode, final Map<String, Object> paramsMap, final SobotResultBlock resultBlock) {
if (SobotStringUtils.isEmpty(host)) { if (SobotStringUtils.isEmpty(host)) {
SobotLogUtils.i("host 域名不能为空"); SobotLogUtils.i("host 域名不能为空");
if (resultBlock != null) { if (resultBlock != null) {
...@@ -231,7 +231,7 @@ public class SobotLoginTools { ...@@ -231,7 +231,7 @@ public class SobotLoginTools {
params.put("version", paramsMap.get("version")); params.put("version", paramsMap.get("version"));
params.put("loginUser", loginAcount); params.put("loginUser", loginAcount);
params.put("loginPwd", loginPwd); params.put("loginPwd", loginPwd);
if(SobotStringUtils.isNoEmpty(factorVerifyCode)) { if (SobotStringUtils.isNoEmpty(factorVerifyCode)) {
params.put("factorVerifyCode", factorVerifyCode); params.put("factorVerifyCode", factorVerifyCode);
} }
SobotHttpUtils.doPost(cancelTag, host + "/basic-login/serviceAppLogin/4", 8000, params, headerMap, new HttpBaseUtils.StringCallBack() { SobotHttpUtils.doPost(cancelTag, host + "/basic-login/serviceAppLogin/4", 8000, params, headerMap, new HttpBaseUtils.StringCallBack() {
...@@ -251,55 +251,15 @@ public class SobotLoginTools { ...@@ -251,55 +251,15 @@ public class SobotLoginTools {
serviceInfoModel.setToken(token); serviceInfoModel.setToken(token);
serviceInfoModel.setLoginAccount(loginAcount); serviceInfoModel.setLoginAccount(loginAcount);
serviceInfoModel.setLoginPwd(loginPwd); serviceInfoModel.setLoginPwd(loginPwd);
if ((serviceInfoModel.getCallV6Flag() == 1 || SobotPermissionManager.isHasNewPermission(SobotPermissionManager.SCC))) {
//如果是v6呼叫 //判断是否有对话功能
String tempHost = openApiHost; if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) {
if (tempHost.contains("/text")) { getAdminStatus(cancelTag, mContext, host, paramsMap, serviceInfoModel, resultBlock);
tempHost = tempHost.replace("/text", "");
}
final SobotServiceInfoModel tempServiceInfoModel = serviceInfoModel;
doAccessToken(cancelTag, tempHost, serviceInfoModel.getToken(), new SobotResultBlock() {
@Override
public void resultBolok(SobotResultCode code, String msg, Object obj) {
if (code == SobotResultCode.CODE_SUCCEEDED) {
SobotServiceInfoModel tempUserEntity = tempServiceInfoModel;
if (obj != null && obj instanceof String && SobotStringUtils.isNoEmpty((String) obj)) {
String accessToken = (String) obj;
tempUserEntity.setAccess_token(accessToken);
//判断是否有对话功能
if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) {
getAdminStatus(cancelTag, mContext, host, paramsMap, tempUserEntity, resultBlock);
} else {
setServiceInfo(tempUserEntity);
SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, tempUserEntity);
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", tempUserEntity);
}
}
} else {
SobotLogUtils.i("accessToken获取失败");
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", tempServiceInfoModel);
}
}
} else {
SobotLogUtils.i("accessToken获取失败");
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", tempServiceInfoModel);
}
}
}
});
} else { } else {
//判断是否有对话功能 setServiceInfo(serviceInfoModel);
if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) { SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, serviceInfoModel);
getAdminStatus(cancelTag, mContext, host, paramsMap, serviceInfoModel, resultBlock); if (resultBlock != null) {
} else { resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", serviceInfoModel);
setServiceInfo(serviceInfoModel);
SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, serviceInfoModel);
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", serviceInfoModel);
}
} }
} }
} else { } else {
...@@ -402,55 +362,15 @@ public class SobotLoginTools { ...@@ -402,55 +362,15 @@ public class SobotLoginTools {
serviceInfoModel.setLogin_time(login_time); serviceInfoModel.setLogin_time(login_time);
serviceInfoModel.setToken(token); serviceInfoModel.setToken(token);
serviceInfoModel.setLoginAccount(loginAcount); serviceInfoModel.setLoginAccount(loginAcount);
if ((serviceInfoModel.getCallV6Flag() == 1 || SobotPermissionManager.isHasNewPermission(SobotPermissionManager.SCC))) {
//如果是v6呼叫 //判断是否有对话功能
String tempHost = openApiHost; if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) {
if (tempHost.contains("/text")) { getAdminStatus(cancelTag, mContext, host, paramsMap, serviceInfoModel, resultBlock);
tempHost = tempHost.replace("/text", "");
}
final SobotServiceInfoModel tempServiceInfoModel = serviceInfoModel;
doAccessToken(cancelTag, tempHost, serviceInfoModel.getToken(), new SobotResultBlock() {
@Override
public void resultBolok(SobotResultCode code, String msg, Object obj) {
if (code == SobotResultCode.CODE_SUCCEEDED) {
SobotServiceInfoModel tempUserEntity = tempServiceInfoModel;
if (obj != null && obj instanceof String && SobotStringUtils.isNoEmpty((String) obj)) {
String accessToken = (String) obj;
tempUserEntity.setAccess_token(accessToken);
//判断是否有对话功能
if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) {
getAdminStatus(cancelTag, mContext, host, paramsMap, tempUserEntity, resultBlock);
} else {
setServiceInfo(tempUserEntity);
SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, tempUserEntity);
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", tempUserEntity);
}
}
} else {
SobotLogUtils.i("accessToken获取失败");
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", tempServiceInfoModel);
}
}
} else {
SobotLogUtils.i("accessToken获取失败");
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", tempServiceInfoModel);
}
}
}
});
} else { } else {
//判断是否有对话功能 setServiceInfo(serviceInfoModel);
if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) { SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, serviceInfoModel);
getAdminStatus(cancelTag, mContext, host, paramsMap, serviceInfoModel, resultBlock); if (resultBlock != null) {
} else { resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", serviceInfoModel);
setServiceInfo(serviceInfoModel);
SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, serviceInfoModel);
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", serviceInfoModel);
}
} }
} }
} else { } else {
...@@ -557,55 +477,15 @@ public class SobotLoginTools { ...@@ -557,55 +477,15 @@ public class SobotLoginTools {
serviceInfoModel.setLogin_time(login_time); serviceInfoModel.setLogin_time(login_time);
serviceInfoModel.setToken(token); serviceInfoModel.setToken(token);
serviceInfoModel.setLoginAccount(loginAcount); serviceInfoModel.setLoginAccount(loginAcount);
if ((serviceInfoModel.getCallV6Flag() == 1 || SobotPermissionManager.isHasNewPermission(SobotPermissionManager.SCC))) {
//如果是v6呼叫 //判断是否有对话功能
String tempHost = openApiHost; if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) {
if (tempHost.contains("/text")) { getAdminStatus(cancelTag, mContext, host, paramsMap, serviceInfoModel, resultBlock);
tempHost = tempHost.replace("/text", "");
}
final SobotServiceInfoModel tempServiceInfoModel = serviceInfoModel;
doAccessToken(cancelTag, tempHost, serviceInfoModel.getToken(), new SobotResultBlock() {
@Override
public void resultBolok(SobotResultCode code, String msg, Object obj) {
if (code == SobotResultCode.CODE_SUCCEEDED) {
SobotServiceInfoModel tempUserEntity = tempServiceInfoModel;
if (obj != null && obj instanceof String && SobotStringUtils.isNoEmpty((String) obj)) {
String accessToken = (String) obj;
tempUserEntity.setAccess_token(accessToken);
//判断是否有对话功能
if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) {
getAdminStatus(cancelTag, mContext, host, paramsMap, tempUserEntity, resultBlock);
} else {
setServiceInfo(tempUserEntity);
SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, tempUserEntity);
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", tempUserEntity);
}
}
} else {
SobotLogUtils.i("accessToken获取失败");
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", tempServiceInfoModel);
}
}
} else {
SobotLogUtils.i("accessToken获取失败");
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", tempServiceInfoModel);
}
}
}
});
} else { } else {
//判断是否有对话功能 setServiceInfo(serviceInfoModel);
if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) { SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, serviceInfoModel);
getAdminStatus(cancelTag, mContext, host, paramsMap, serviceInfoModel, resultBlock); if (resultBlock != null) {
} else { resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", serviceInfoModel);
setServiceInfo(serviceInfoModel);
SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, serviceInfoModel);
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", serviceInfoModel);
}
} }
} }
} else { } else {
...@@ -653,7 +533,7 @@ public class SobotLoginTools { ...@@ -653,7 +533,7 @@ public class SobotLoginTools {
} }
if (!isLogin(loginAcount)) { if (!isLogin(loginAcount)) {
if (resultBlock != null) { if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED ,"上次登录的保存信息为空,不用再次退出登录", null); resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "上次登录的保存信息为空,不用再次退出登录", null);
} }
return; return;
} }
...@@ -661,6 +541,7 @@ public class SobotLoginTools { ...@@ -661,6 +541,7 @@ public class SobotLoginTools {
params.put("loginUser", loginAcount); params.put("loginUser", loginAcount);
Map<String, String> headerParams = new HashMap<>(); Map<String, String> headerParams = new HashMap<>();
headerParams.put("temp-id", getToken()); headerParams.put("temp-id", getToken());
headerParams.put("authorization","Bearer "+ getToken());
headerParams.put("from", "2"); headerParams.put("from", "2");
SobotHttpUtils.doPost(cancelTag, host + "/basic-login/serviceLogOut/4", 8000, params, headerParams, new HttpBaseUtils.StringCallBack() { SobotHttpUtils.doPost(cancelTag, host + "/basic-login/serviceLogOut/4", 8000, params, headerParams, new HttpBaseUtils.StringCallBack() {
@Override @Override
...@@ -708,6 +589,7 @@ public class SobotLoginTools { ...@@ -708,6 +589,7 @@ public class SobotLoginTools {
Map<String, String> headerMap = new HashMap<>(); Map<String, String> headerMap = new HashMap<>();
if (!SobotStringUtils.isEmpty(token)) { if (!SobotStringUtils.isEmpty(token)) {
headerMap.put("temp-id", token); headerMap.put("temp-id", token);
headerMap.put("authorization","Bearer "+ token);
} }
if (!SobotStringUtils.isEmpty(language)) { if (!SobotStringUtils.isEmpty(language)) {
headerMap.put("language", language); headerMap.put("language", language);
...@@ -803,69 +685,17 @@ public class SobotLoginTools { ...@@ -803,69 +685,17 @@ public class SobotLoginTools {
} }
} }
/**
* 获取accessToken
*/
public void doAccessToken(Object cancelTag, String host, String token,
final SobotResultBlock resultBlock) {
Map<String, String> headerMap = new HashMap<>();
if (!SobotStringUtils.isEmpty(token)) {
headerMap.put("temp-id", token);
}
if (SobotStringUtils.isEmpty(host)) {
//获取accessToken 默认用腾讯云域名
host = "https://api-c.soboten.com";
}
headerMap.put("from", "2");
SobotHttpUtils.doPost(cancelTag, host + "/tokens/getToken", null, headerMap, new HttpBaseUtils.StringCallBack() {
@Override
public void onResponse(String result) {
if (!SobotStringUtils.isEmpty(result)) {
Map map = SobotGsonUtil.jsonToMaps((String) result);
if (map != null && map.containsKey("accessToken")) {
String accessToken = (String) map.get("accessToken");
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "", accessToken);
}
} else {
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "", null);
}
}
} else {
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "", null);
}
}
}
@Override
public void onError(Exception e, String msg, int responseCode) {
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, msg, null);
}
}
@Override
public void inProgress(int progress) {
}
});
}
/** /**
* 如果是智齿客服APP 或者客服SDK 并且有对话模块,获取在线状态 * 如果是智齿客服APP 或者客服SDK 并且有对话模块,获取在线状态
*/ */
public void getAdminStatus(Object cancelTag, final Context context, String host, Map<String, Object> params, final SobotServiceInfoModel infoModel, final SobotResultBlock resultBlock) { public void getAdminStatus(Object cancelTag, final Context context, String host, Map<String, Object> params, final SobotServiceInfoModel infoModel, final SobotResultBlock resultBlock) {
if (infoModel != null) { if (infoModel != null) {
Map<String, String> headerMap = new HashMap<>(); Map<String, String> headerMap = new HashMap<>();
headerMap.put("token", SobotStringUtils.checkStringIsNull(infoModel.getToken())); headerMap.put("authorization", "Bearer " + SobotStringUtils.checkStringIsNull(infoModel.getToken()));
headerMap.put("temp-id", SobotStringUtils.checkStringIsNull(infoModel.getToken()));
headerMap.put("language", SobotStringUtils.checkStringIsNull(infoModel.getServiceLanguage())); headerMap.put("language", SobotStringUtils.checkStringIsNull(infoModel.getServiceLanguage()));
headerMap.put("from", "2"); headerMap.put("from", "2");
SobotHttpUtils.doGet(cancelTag, host + "/chat-sdk/sdk/admin/v1/appEnter", 8000, params, headerMap, new HttpBaseUtils.StringCallBack() { SobotHttpUtils.doGet(cancelTag, host + "/chat-sdk/sdk/admin/v2/appEnter", 8000, params, headerMap, new HttpBaseUtils.StringCallBack() {
@Override @Override
public void onResponse(String result) { public void onResponse(String result) {
if (!SobotStringUtils.isEmpty(result)) { if (!SobotStringUtils.isEmpty(result)) {
...@@ -884,9 +714,9 @@ public class SobotLoginTools { ...@@ -884,9 +714,9 @@ public class SobotLoginTools {
tempServiceInfoModel.setKbVersion(SobotStringUtils.checkStringIsNull(userEntity.getKbVersion())); tempServiceInfoModel.setKbVersion(SobotStringUtils.checkStringIsNull(userEntity.getKbVersion()));
tempServiceInfoModel.setRobotVersion(SobotStringUtils.checkStringIsNull(userEntity.getRobotVersion())); tempServiceInfoModel.setRobotVersion(SobotStringUtils.checkStringIsNull(userEntity.getRobotVersion()));
tempServiceInfoModel.setOnlineVersion(SobotStringUtils.checkStringIsNull(userEntity.getOnlineVersion())); tempServiceInfoModel.setOnlineVersion(SobotStringUtils.checkStringIsNull(userEntity.getOnlineVersion()));
if(userEntity.getStatus()==2){ if (userEntity.getStatus() == 2) {
tempServiceInfoModel.setStatus(userEntity.getStatusCode()); tempServiceInfoModel.setStatus(userEntity.getStatusCode());
}else { } else {
tempServiceInfoModel.setStatus(userEntity.getStatus()); tempServiceInfoModel.setStatus(userEntity.getStatus());
} }
tempServiceInfoModel.setFuseWork(userEntity.getFuseWork()); tempServiceInfoModel.setFuseWork(userEntity.getFuseWork());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment