最简单的验证方法是,业务服务器收到核心转发的用户信息后,去DB用户表里面检索,匹配成功后,返回回调函数和用户ID给核心,核心传给客户端,通过验证。 |
实现思路简化版: 客户端登陆API,发送用户信息 --- 核心服务转发ID和密码 --- 业务服务器验证(验证方法自行设计),返回用户身份验证回调函数 --- 核心转发回调 --- 客户端通过验证后登陆。 用户身份验证回调函数说明: 2.3. 用户身份验证回调函数定义 typedef DWORD (CALLBACK* BRAS_VerifyUser_CallBack)(IN LPCTSTR lpUserName,INLPCTSTR lpPassword, OUT LPDWORD lpUserID, OUT LPDWORD lpUserLevel, OUT LPTSTR lpNickName,IN DWORD dwNCLen, LPVOID lpUserValue); 参数: LPCTSTR lpUserName 用于身份验证的用户名 LPCTSTR lpPassword 用于身份验证的用户密码 LPDWORD lpUserID 输出用户的 ID 号(唯一) LPDWORD lpUserLevel 输出用户的级别 LPTSTR lpNickName 输出用户的昵称(可以与用户名相同) DWORD dwNCLen 保存用户昵称的缓冲区大小 LPVOID lpUserValue 用户自定义参数,在设置回调函数时传入 返回值: DWORD 返回出错代码,参考 SDK\ GVErrorCodeDefine.h 文件中有关出错 代码的定义,通常会返回如下的值: GV_ERR_SUCCESS(0) 表示验证通过,允许用户登录系统 GV_ERR_CERTIFY_FAIL(200) 用户名或密码有误,认证失败 GV_ERR_ACCOUNT_LOCK(202) 帐户已被暂时锁定,认证失败 备注: 该回调函数用于验证用户的身份信息。用户名与用户密码为输入参数,后面其它的参数为输出参数,用于反馈结果给服务器程序。身份验证是否成功通过该 方法的返回值来判定。dwVSLen 用于指示传入的缓冲区大小,防止函数体里面拷贝数据时内存溢出。如果该方法不输出用户的昵称,即当 lpNickName 的字符 长度为 0 时,服务器会自动将用户名默认为用户的昵称。 当客户端调用 API:“BRAC_Login”方法,且用户密码不为空时将会触发该回调函数,如果用户密码为空,则不会触发该回调,服务器会将该客户端当“游 客身份”进行处理,如果服务器不支持游客方式登录,则将会返回对应的出错代码给客户端。 该回调仅仅做为用户身份验证之用,不能在该回调里面调用其它的 API(如向指定用户传输透明通道数据:BRAS_TransBuf 等),因为该回调没有返回之前, 用户在内核就没有与 USERID 进行绑定,所以这时调用其它的 API 将是无效的,如 需 要 在 用 户 登 录 之 后 就 发 送 一 些 数 据 , 则 可 在 BRAS_OnUserLoginAction_CallBack 回调函数里面进行处理。 |
admin 发表于 2013-6-21 12:02 请问这个逻辑在java里边怎么实现呢? |
z289674881 发表于 2015-6-30 21:20 您好,我们提供有相关的接口,可以利用桌面共享的接口去实现电子白板的功能的。 |
程序有没有电子白板功能呢? |
hh呵呵呵呵呵 |
admin 发表于 2014-11-28 10:54 好的,谢谢 |
有没有相关的API可供使用? |
请问,客户登录后业务服务器是否可以自动创建和分配房间? |
Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )
GMT+8, 2024-11-22 14:58 , Processed in 0.130747 second(s), 28 queries .
Powered by Discuz! X3
© 2001-2013 Comsenz Inc.