登录验证

本文针对港澳台及海外地区发行的产品,用户登录时的token信息验证

1、登录流程图

2、在线验签

2.1、接口说明

本接口为游戏客户端在接收电魂SDK客户端登录消息后,发送至游戏服务器。再由游戏服务器发送至电魂登录服务器进行登录token有效性验证。

2.2、接口地址

【正式环境】:https://sdk-login-cocooversea.17m3.com/Wbsrv/Check_Login_DH.aspxarrow-up-right

【测试环境】:http://sandbox-sdk-login-coco4game.17m3.com/Wbsrv/Check_Login_DH.aspxarrow-up-right

2.3、环境说明

为方便游戏在接入阶段进行调试,及电魂SDK的不定期更新,特启用正式及测试两套环境。

环境的使用需注意,验证接口的正式或测试表示SDK客户端生成token时对应的登录服务器环境,该环境取决于客户端的配置选择。

获取当前客户端处于何种环境有:

1、游戏客户端手动配置(通常应用于游戏母包的配置),可按照以下方法进行切换。

2、电魂开放平台在线出包配置(在线出包时需特别注意,不论母包中如何配置dh_eng值,实际出包时都将按照在线配置修改dh_eng值进行输出)。

3、游戏服务器根据验证token后返回值(result)判定当前客户端处于何种环境。

如将正式环境生成的token发送至测试环境验证,则result会返回-6,此时该将验证地址修改为测试环境地址再次验证。同理,如果测试环境token发送至正式环境验证,则result会返回-7。

circle-exclamation
triangle-exclamation

2.4、请求方式

circle-exclamation

2.5、请求参数说明

circle-info

请求参数字段名称必须与下列参数大小写保持一致。

token验证不区分区服、设备、以及系统类型(Android、IOS等)

参数及值来源于SDK客户端登录成功后返回给游戏客户端登录数据。

参数名

类型

说明

示例

accountid

String

电魂账号ID

1490014080

appid

String

电魂产品ID

1413829460

logintype

String

登录类型

LoginType_Quick_Visitor

token

String

token值(登录令牌)

ba9939c43a1c43558a252f9b1d3453b0

sign

String

签名(加密规则)

4b06a255ab468d231624c078c001aba7

2.6、返回参数说明

circle-info

返回参数将以JSON格式返回。当验证成功返回值result为1时,data中会返回相应账号信息。部分情况下,resultInfo会返回相应的异常信息。

参数名

类型

说明

result

Int

验证状态(详见下方返回result说明)

resultInfo

String

验证结果内容

data

JsonObject

数据内容

> accountid

Int

电魂账号ID

> account

String

电魂账号

> accountview

String

电魂账号缩略(暂未使用)

> token

String

token验证值

> timestamp

String

服务器时间戳

> logintype

String

验证返回时该字段无效

具体请参考SDK客户端回调值为准

> region

int

特殊处理字段,新接入游戏无需处理。

result值

值说明

0

验证失败

1

验证成功

-1

参数错误

-2

签名错误

-3

token过期

-4

token已使用

-5

token错误

-6

当前token为正式环境生成,

却被发送至测试环境验证。(请前往正式环境验证)

-7

当前token为测试环境生成,

却被发送至正式环境验证。(请前往测试环境验证)

-11

系统错误

2.7、签名规则及示例

2.7.1、AppKey值说明

加密时使用的AppKey为电魂平台中对应AppId所分配的AppKey,文档中为示例AppKey。实际AppKey请联系相应产品对接人员。在MD5签名时,需要相关AppKey参与签名,AppKey为英文字母和数字组成的32位。

2.7.2、签名方式

MD5

2.7.3、参数示例

circle-info

token验证不区分区服、设备、以及系统类型(Android、IOS等)

参数及值来源于SDK客户端登录成功后返回给游戏客户端登录数据。

2.7.4、签名规则

以上参数名称替换为具体参数值,且"+"表示两个字符串的连接符,不要将"+"放入md5加密源串中

2.7.5、签名原文

其中2926cd821ee3479cbd54590ac6bdaa为示例AppKey

2.7.6、签名结果

2.7.7、最终提交数据

查看请求参数说明

3、本地验签

3.1、验签说明

此验签方式仅做为在线验签的备用方案,游戏服务器可在以下两种状态下使用本地验签,无特殊情况请不要使用:

1、使用在线验签时出现网络超时、或者HTTP状态码异常(非200)。

2、游戏依赖于token验证机制的断线重连,或者出现大量掉线时用户密集登录。

3.2、验签参数

参数名

类型

说明

accountid

string

电魂账号ID(角色唯一标示)

timestamp

long

当前登录态有效维持到期时间(unix时间戳,1970-1-1开始)

token

string

登录令牌

sign

string

MD5(accountid+timestamp+token+appkey)

3.2、验签方式

MD5

3.3、签名规则及示例

3.3.1、参数示例

circle-info

token验证不区分区服、设备、以及系统类型(Android、IOS等)

参数及值来源于SDK客户端登录成功后返回给游戏客户端登录数据。

timestamp值(unix时间戳)为当前token值对应的有效维持到期时间。

3.3.2、签名规则

以上参数名称替换为具体参数值,且"+"表示两个字符串的连接符,不要将"+"放入md5加密源串中

3.3.3、签名原文

其中2926cd821ee3479cbd54590ac6bdaa为示例AppKey

3.3.4、签名结果

3.3.5、数据验证

将以上结果值与SDK客户端登录成功后的sign参数值进行比对,一致则表示验证通过。

4、常见问题

1、电魂登录服务器采用AppKey等加密签名机制验证安全性,请不要将AppKey配置在游戏客户端,并做好保密。

2、电魂登录服务器未设置任何黑白IP名单限制来源请求,如游戏服务器由电魂负责运维,请联系相关运维同事开放防火墙中域名出口白名单,否则会导致在线验证超时。

3、在线验证采用POST请求机制,数据body采用form-data模式。

4、在开发调试阶段,在线验证result返回值为-3(token过期),常见于接口地址环境使用错误,目前电魂登录服务器会以(-6,-7)状态返回,提示应选择正确的接口地址环境。

Last updated