WEB跳转免登

业务场景

  1. 用户在游戏内跳转到官网页面时,通过传输加密的linkToken实现免登逻辑

注意事项

  1. 对接参数和 demo 包里的示例参数,不要混用

流程图

参数说明

参数名类型是否必须说明
appIdint发行侧给的appId
deviceTypeint1:安卓2:iOS
openIdstring发行侧的openId,应用内登录时通过发行客户端获取
serverIdstring区服id
serverNamestring区服名
roleIdstring角色id
roleNamestring角色名
roleLevelstring角色等级
vipLevelstringvip等级
timestamplong时间戳,毫秒级

签名规则

对参数体(json格式字符串)进行加密,加密算法为 AES-ECB128位,填充模式为 PKCS7Padding,密钥为 CP 服务端分配的 appKey

调试示例

import cn.hutool.crypto.SecureUtil;

public class LoginExample {

    public static void main(String[] args) {
        Map<String, Object> params = Maps.newLinkedHashMap();
        params.put("appId", 10070);
        params.put("deviceType", 1);
        params.put("openId", "12345678912345678912345");
        params.put("serverId", "123");
        params.put("serverName", "1区");
        params.put("roleId", "123");
        params.put("roleName", "小明");
        params.put("roleLevel", "1");
        params.put("vipLevel", "1");
        params.put("timestamp", 1234567890000L);
        String appKey = "348s4af1b8kdo892";
        String data = JSONUtil.toJsonStr(params);
        System.out.println(data);
        System.out.println(SecureUtil.aes(appKey.getBytes()).encryptHex(data));
    }

    // 加密体:{"appId":10070,"deviceType":1,"openId":"12345678912345678912345","serverId":"123","serverName":"1区","roleId":"123","roleName":"小明","roleLevel":"1","vipLevel":"1","timestamp":1234567890000}
    // 加密结果:353260ca1b766caa4bb16f20d07ac7bfe5de68865b715f3f6cfa15221c24138e643cb0af5ed276bedb1ed3902274e1da39f127d14097a16e2e9525b54cba94a89e9c05c0cc78475d5b6deef6096bd4753f2fd9f5cc1b0d45e5438b808d39fdfd57c40fd38afba5d40d7a7b65c77e03edb3d25a4f55112cd2bfc1df070f4bc383c298946c9d9d3fd84867740caa1968ca36fadbe072a9448063e12d608dabdd1bd066d1ca4c1f2e97299b1bc8ecccbf8d58a338c0be034956a2207169e7e4a3f7af9200e971ffa2d45ab88ddfc6b2a6b6
}

## 使用方式

游戏内打开打开官网时,将 appId 和 linkToken 拼接到要打开的官网地址后面
官网地址:https://xxx.com/index
拼接后结果:https://xxx.com/index?appId=10070&linkToken=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx