登录验证
本文针对港澳台及海外地区发行的产品,用户登录时的token信息验证
1、登录流程图
2、在线验签
2.1、接口说明
本接口为游戏客户端在接收电魂SDK客户端登录消息后,发送至游戏服务器。再由游戏服务器发送至电魂登录服务器进行登录token有效性验证。
2.2、接口地址
【正式环境】:https://sdk-login-cocooversea.17m3.com/Wbsrv/Check_Login_DH.aspx
【测试环境】:http://sandbox-sdk-login-coco4game.17m3.com/Wbsrv/Check_Login_DH.aspx
2.3、环境说明
为方便游戏在接入阶段进行调试,及电魂SDK的不定期更新,特启用正式及测试两套环境。
环境的使用需注意,验证接口的正式或测试表示SDK客户端生成token时对应的登录服务器环境,该环境取决于客户端的配置选择。
获取当前客户端处于何种环境有:
1、游戏客户端手动配置(通常应用于游戏母包的配置),可按照以下方法进行切换。
2、电魂开放平台在线出包配置(在线出包时需特别注意,不论母包中如何配置dh_eng值,实际出包时都将按照在线配置修改dh_eng值进行输出)。
3、游戏服务器根据验证token后返回值(result)判定当前客户端处于何种环境。
如将正式环境生成的token发送至测试环境验证,则result会返回-6,此时该将验证地址修改为测试环境地址再次验证。同理,如果测试环境token发送至正式环境验证,则result会返回-7。
由于电魂SDK客户端的特殊性,目前暂无法在登录成功返回给游戏客户端消息数据中包含环境标识,需游戏客户端自行获取,或根据服务器验证token返回值进行程序自动切换。
测试环境仅允许出现于项目的接入及调试阶段,发布正式版本前,Android包必须通过开放平台进行出包,且关闭测试环境选项。IOS也必须在出包前在本地关闭相关环境配置。
2.4、请求方式
POST
2.5、请求参数说明
请求参数字段名称必须与下列参数大小写保持一致。
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、返回参数说明
返回参数将以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、参数示例
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、参数示例
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