generated from root/miduo_server
232 lines
11 KiB
Java
232 lines
11 KiB
Java
package com.jmfy.controller;
|
||
|
||
import com.alibaba.fastjson.JSONObject;
|
||
import com.jmfy.dao.UserVerfyDao;
|
||
import com.jmfy.sdk.SdkVerfy;
|
||
import com.jmfy.util.Constant;
|
||
import com.jmfy.util.RedisUtil;
|
||
import org.slf4j.Logger;
|
||
import org.slf4j.LoggerFactory;
|
||
import org.springframework.web.bind.annotation.RequestMapping;
|
||
import org.springframework.web.bind.annotation.RequestMethod;
|
||
import org.springframework.web.bind.annotation.RestController;
|
||
|
||
import javax.annotation.Resource;
|
||
import javax.servlet.http.HttpServletResponse;
|
||
import java.util.HashMap;
|
||
import java.util.Map;
|
||
import java.util.UUID;
|
||
|
||
@RestController
|
||
public class SDKController {
|
||
|
||
private static final Logger LOGGER = LoggerFactory.getLogger(SDKController.class);
|
||
|
||
@Resource
|
||
private UserVerfyDao userVerfyDao;
|
||
|
||
/**
|
||
* sdk统一登录接口
|
||
* 验证用户信息接口
|
||
* @param userId
|
||
* @param channel
|
||
* @param sdksign
|
||
* @param sdktoken
|
||
* @param response
|
||
*/
|
||
@RequestMapping(value = "/sdk/verify", method = {RequestMethod.GET, RequestMethod.POST})
|
||
public void verify(String userId, String channel, String sdksign, String sdktoken, HttpServletResponse response) {
|
||
try {
|
||
Map<String, Object> params = new HashMap<String, Object>();
|
||
params.put("uid", userId);
|
||
params.put("channel", channel);
|
||
params.put("sign", sdksign);
|
||
params.put("token", sdktoken);
|
||
JSONObject returnResult = new JSONObject();
|
||
LOGGER.info("verify参数:userId={},channel={},sdksign={},sdktoken={}",userId,channel,sdksign,sdktoken);
|
||
if (channel == null) {
|
||
returnResult.put("errcode", -2);
|
||
response.setContentType("application/json");
|
||
response.getOutputStream().write(returnResult.toJSONString().getBytes());
|
||
return;
|
||
}
|
||
|
||
int channelType = 0; //区分渠道
|
||
String uid = "-1";
|
||
switch (channel) {
|
||
case "test":
|
||
uid = SdkVerfy.testVerfy();
|
||
break;
|
||
case "quick":
|
||
uid = SdkVerfy.quickVerfy(userId, sdktoken);
|
||
break;
|
||
case "xiaomi":
|
||
uid = SdkVerfy.xiaomiVerfy(userId, sdktoken);
|
||
break;
|
||
case "weiwei":
|
||
uid = SdkVerfy.weiweiVerfy(userId, sdktoken);
|
||
break;
|
||
case "Android_9377":
|
||
uid = SdkVerfy.weiwei4366Verfy(userId, sdktoken);
|
||
break;
|
||
case "Android_ChiTu": //赤兔
|
||
uid = SdkVerfy.chiTuVerfy(userId,sdksign, sdktoken);
|
||
break;
|
||
case "Android_ilod": //韩国正式
|
||
case "Android_ilod_OneStore": //韩国正式 OneStore渠道
|
||
case "Android_ilod_OneStoreCB": //韩国正式 CB不开支付
|
||
case "iOS_ilod": //韩国正式 iOS渠道
|
||
channelType = 1;
|
||
uid = SdkVerfy.ilodVerfy(userId,sdksign, sdktoken);
|
||
break;
|
||
case "baidu": //百度正式之前
|
||
uid = SdkVerfy.baiduVerfy(userId, sdktoken, sdksign);
|
||
break;
|
||
case "Android_BaiDu": //百度正式 现在
|
||
case "iOS_BaiDu":
|
||
uid = SdkVerfy.baiduVerfy(userId, sdktoken, sdksign);
|
||
break;
|
||
case "iOS_BaiDu_Test": //百度测试 现在
|
||
uid = SdkVerfy.baiduTestVerfy(userId, sdktoken, sdksign);
|
||
break;
|
||
case "6kwOther":
|
||
uid = SdkVerfy.sixkwVerfy(userId, sdktoken, Constant.SIXKW_APPID, Constant.SIXKW_VERIFY_URL, Constant.SIXKW_SECRET);
|
||
break;
|
||
case "6kw":
|
||
uid = SdkVerfy.sixkwVerfy(userId, sdktoken, Constant.SIXKW_MAIN_APPID, Constant.SIXKW_VERIFY_URL, Constant.SIXKW_MAIN_LOGIN_SECRET);
|
||
break;
|
||
case "Android_QuickGame": //国内--时空战场 Android
|
||
case "Android_QuickGame_douyin":
|
||
uid = SdkVerfy.quickGameVerfy(userId, sdksign, sdktoken);
|
||
break;
|
||
case "iOS_QuickGame": //国内--时空战场 IOS
|
||
uid = SdkVerfy.quickGameVerfy_IOS(userId,sdksign, sdktoken);
|
||
break;
|
||
case "Android_99": //国内--九九互动渠道Android_99
|
||
case "Android_99_Child": //国内--九九互动渠道Android_99_Child
|
||
case "Android_99_Child2": //国内--九九互动渠道Android_99_Child2
|
||
case "Android_99_Child3": //国内--九九互动渠道Android_99_Child3
|
||
case "Android_99_Child4": //国内--九九互动渠道Android_99_Child4
|
||
uid = SdkVerfy.jjChannelVerfy(userId,sdksign,sdktoken); //sdksign 客户端 这个值传的是 appid值,因为appid值是变动的,所以需要客户端传
|
||
break;
|
||
case "Android_ChangWei": //长尾渠道 安卓
|
||
case "iOS_ChangWei": //长尾渠道 IOS
|
||
uid = SdkVerfy.changWeiGameVerify(userId,sdksign,sdktoken);
|
||
break;
|
||
case "Android_XiaoQi"://xiao7渠道
|
||
uid = SdkVerfy.xiaoQiVerify(sdktoken, returnResult);
|
||
break;
|
||
case "Android_AiKen"://艾肯渠道安卓
|
||
uid = SdkVerfy.aikenVerify(sdktoken);
|
||
break;
|
||
case "iOS_AiKen"://艾肯渠道ios
|
||
uid = SdkVerfy.aikenVerify(sdktoken);
|
||
break;
|
||
case "Android_AiKen_Child1"://艾肯渠道
|
||
uid = SdkVerfy.aikenVerify(sdktoken);
|
||
break;
|
||
case "Android_Tap"://千千官方
|
||
uid = SdkVerfy.qianqianVerify(userId, sdktoken);
|
||
break;
|
||
case "Android_Tap_Quick"://千千quick
|
||
uid = SdkVerfy.quickVerify(userId, sdktoken);
|
||
break;
|
||
case "Android_Ky_Quick"://0.1折
|
||
uid = SdkVerfy.quickVerify2(userId, sdktoken);
|
||
break;
|
||
case "iOS_Ky_Quick"://0.1折
|
||
uid = SdkVerfy.quickVerify2(userId, sdktoken);
|
||
break;
|
||
case "Android_BT_QiPa"://bt渠道
|
||
uid = SdkVerfy.superVerify(userId, sdktoken);
|
||
break;
|
||
case "iOS_BT_QiPa"://bt渠道
|
||
uid = SdkVerfy.superVerify(userId, sdktoken);
|
||
break;
|
||
case "Android_BT_QiPa2"://bt渠道
|
||
uid = SdkVerfy.superVerify(userId, sdktoken);
|
||
break;
|
||
case "iOS_BT_QiPa2"://bt渠道
|
||
uid = SdkVerfy.superVerify(userId, sdktoken);
|
||
break;
|
||
case "QKZB01"://quick直播1
|
||
uid = SdkVerfy.quickGameVerfy(userId, sdksign, sdktoken);
|
||
break;
|
||
case "QKZB02"://quick直播2
|
||
uid = SdkVerfy.quickGameVerfy2(userId, sdksign, sdktoken);
|
||
break;
|
||
case "F5"://F5渠道
|
||
uid = SdkVerfy.f5Verify(userId, sdktoken);
|
||
break;
|
||
case "F5_GW"://F5渠道
|
||
uid = SdkVerfy.f5GwVerify(userId, sdktoken);
|
||
break;
|
||
case "DNA_AD"://dna安卓渠道
|
||
uid = SdkVerfy.dnaVerify(userId, sdktoken,1);
|
||
break;
|
||
case "DNA_IOS"://dnaios渠道
|
||
uid = SdkVerfy.dnaVerify(userId, sdktoken,2);
|
||
break;
|
||
default:
|
||
uid = "-1";
|
||
}
|
||
if(channelType ==1){ //韩服
|
||
LOGGER.info("verify02参数: channel={}, uid={}", channel,uid);
|
||
if(uid.equals("0") || uid.equals("-1") || uid.equals("-2") || uid.equals("-3") || uid == null){
|
||
String errMessage = "登录验证失败";
|
||
switch (uid){
|
||
case "0":
|
||
errMessage = "请求参数有误"; //body中有数据遗漏时。请求HTTP时请确认projectId、memberId、token是否已全部输入
|
||
break;
|
||
case "-1":
|
||
errMessage = "登录token验证失败"; //Token验证失败。Token被伪造时
|
||
break;
|
||
case "-2":
|
||
errMessage = "MemberId验证失败"; //MemberId验证失败.Token的用户ID信息与body的用户ID不一致时
|
||
break;
|
||
case "-3":
|
||
errMessage = "Token到期"; //Token到期. SDK login api成功的时间与请求相应Authentication check的时间相差60分钟以上时
|
||
break;
|
||
default:
|
||
errMessage = "登录验证失败";
|
||
}
|
||
|
||
returnResult.put("errcode", -1);
|
||
returnResult.put("errMessage", errMessage);
|
||
response.setContentType("application/json");
|
||
response.getOutputStream().write(returnResult.toJSONString().getBytes());
|
||
return;
|
||
}
|
||
}else { //非韩服
|
||
if (uid.equals("-1") ||uid == null ) {
|
||
returnResult.put("errcode", -1);
|
||
response.setContentType("application/json");
|
||
response.getOutputStream().write(returnResult.toJSONString().getBytes());
|
||
return;
|
||
}
|
||
}
|
||
LOGGER.info("verify03参数: channel={},uid={}",channel, uid);
|
||
String name = uid;
|
||
String openId = userVerfyDao.verfyUser(name);
|
||
//登录流程
|
||
returnResult.put("openId", openId);
|
||
returnResult.put("guid", uid);
|
||
String token = UUID.randomUUID().toString();
|
||
returnResult.put("token", token);
|
||
RedisUtil.getInstence().putObject("JL_LOGIN_TOKEN", openId, token, -1);
|
||
LOGGER.info("verify04参数: channel={}, openId={} token={},uid={}", channel, returnResult.get("openId"), returnResult.get("token"),uid);
|
||
response.setContentType("application/json");
|
||
response.getOutputStream().write(returnResult.toJSONString().getBytes());
|
||
return;
|
||
} catch (Exception e) {
|
||
LOGGER.error("sdk verify error ",e);
|
||
}
|
||
}
|
||
|
||
public static void main(String[] args) {
|
||
byte[] bytes = UUID.randomUUID().toString().getBytes();
|
||
System.out.println(bytes.length);
|
||
}
|
||
|
||
}
|