用户工具

站点工具


vhall_open:第三方k值认证

第三方K值认证

观看直播、观看回放的权限控制,支持使用客户的权限验证逻辑。

具体可参考:http://e.vhall.com/home/vhallapi/embed

1、 认证流程

2、 开启设置

1) 第三方回调接口设置

* 全局设置: 针对所有的活动配置生效,如果针对单个活动再做配置,以单个活动配置为最终配置。接口调用设置接口:

webinar/whole-auth-url 全局配置第三方K值验证URL

* 针对 普通列表项目某个活动的配置方式一:通过页面配置 http://e.vhall.com/webinar/auth/123456789 ,数字表示自己帐号下的活动id

* 针对某个活动的配置方式二:通过接口(webinar/create或webinar/update)设置

* 接口参数:use_global_k ,默认为0不开启,1为开启,是否针对此活动开启全局K值配置;当设置为0后,则以单个活动的配置为最终

配置。

2) Vhall接口URL中请务必带上k参数,如果这个参数为空或者没有这个参数,则视为认证失败

3) Vhall系统收到用户的接口访问请求后,会向第三方认证URL(auth_url)发送HTTP POST请求,同时将email和k值作为POST数据提交

给第三方认证。由第三方系统验证k值的合法性。如果认证通过,第三方认证URL(auth_url)返回字符串pass,否则的返回fail

注:需要确保您的回调地址支持 multipart/form-data 方式接收 post 数据。

4) Vhall 系统根据第三方认证URL返回值判断认证是否成功。只有收到pass,才能认定为验证成功,否则一律跳转到指定的认证失败

URL,或者提示'非法访问'

3、 K值使用

1) 网页嵌入或SDK里的调用方法,请务必带上k参数,如果这个参数为空或者没有这个参数,则视为认证失败

* 网页嵌入地址类似:http://e.vhall.com/webinar/inituser/123456789?email=test@vhall.com&name=visitor&k=随机字符串

* SDK里的调用方法,需要传递3个参数name,email,pass

email:可选参数,如果不填写系统会随机生成邮箱地址。 由于email自身的唯一性,我们推荐使用email来作为唯一标识有效用户的字段。对于

第三方自有用户数据的系统,也可以使用一些特征ID作为此标识,请以email的格式组织,比如在第三方系统中,用户ID为123456,可在其后添

加一个@domain.com,组成123456@domain.com形式的email地址。

name: 可选参数,如果不填写系统会随机生成。此字段表示用户昵称、姓名或其他有意义的字符串。可以为中文,但必须为UTF-8,且经过URL

编码(urlencode)。

k: 可选参数,此字段为了提供给第三方可以根据自己的权限系统,验证客户是否可访问直播地址。

具体查看上面的“观看直播”里的参数说明。

2) Vhall系统收到用户的接口访问请求后,会向第三方认证URL(auth_url)发送HTTP POST请求,同时将email和k值作为POST数据提交 给第

三方认证。由第三方系统验证k值的合法性。如果认证通过,第三方认证URL(auth_url)返回字符串pass,否则的返回fail

注:需要确保您的回调地址支持 multipart/form-data 方式接收 post 数据。

3) Vhall 系统根据第三方认证URL返回值判断认证是否成功。只有收到pass,才能认定为验证成功,否则一律跳转到指定的认证失败 URL,或

者提示'非法访问'

4)参数特征

URL请求很容易被探测截获,这就要求第三方系统生成的K值必须有以下特征:

* 唯一性:每次调用接口必须产生不同的K值

* 时效性:设定一个时间范围,超时的K值即失效。

* 如果包含有第三方系统内部信息,必须加密和混淆过。

5)建议的K值实现

第三方系统可以考虑K值元素包括:用户ID、Vhall直播ID、时间戳(1970-01-01至今的秒数)元素组合后加密后,使用Base64或者hex 匹配成

URL可识别编码。K值在第三方系统中持久化或放在Cache中

回调验证时,根据时间戳判断是否在设定时间内有效

验证结束,若认证通过,则从DB或Cache中移除K值

DB或Cache建议有时效性控制,自动失效或定期清理过期数据

vhall_open/第三方k值认证.txt · 最后更改: 2017/09/29 15:44 由 yan.gao