跳转到第三方视频网站,播放视频的权限解决方案(不在第三方网站登录,用户体系不一致)

 

需求:在平台中需要填写一个视频地址(第三方视频播放地址),用户在平台购买该视频后,点击播放,可以跳转到第三方视频进行播放。跳转到第三方视频网站后,不需要在第三方网站登录。

目前上传培训视频是本地视频上传方式,现在需要增加填写URL(第三方培训视频播放地址)的方式。

URL的保存

之前上传本地视频的方式,上传成功后会生成一个videoid(1c87eb823c554d198fcb459fc60d1409这种格式),存入video_url字段。

对于填写URL第三方视频播放地址的方式,也存入video_url字段。

平台前端网页播放时,需要判断video_url的格式,如果以http开头,则跳转到第三方视频网站进行播放,否则在本平台播放。

URL播放安全控制

两个关键点:①购买后才可以播放。②当前登录人的播放链接,禁止其他人播放,只允许自己播放。

解决方案:

①用户登录平台后,进入人才培训相关页面

 点击”播放”按钮,调用后台申请播放凭证接口,接口内部处理逻辑如下

  • 验证用户是否已购买相应视频,未购买,则向前端返回信息提示用户先购买
  • 如果已购买,则生成一个播放凭证——播放凭证为不重复的序列号,只能一次性使用(使用:跳转到第三方视频播放地址播放视频时,需验证播放凭证是否有效,验证该播放凭证的有效性即为使用),播放凭证使用后即失效,而且最大有效期为10秒。
  • 生成带播放凭证的URL,并用AES-128-ECB加密后返回到前端。URL格式为第三方视频播放地址加播放凭证,如第三方视频播放地址为http://www.xxx.com/xxx,播放凭证为003f810e20b34da788af3e3d439b528c ,那么生成的URL为http://www.xxx.com/xxx?p=003f810e20b34da788af3e3d439b528c

             播放凭证的技术实现:

             唯一性——播放凭证序列号利用uuid生成,可以保证播放凭证的唯一性不重复。原生的uuid字符串去掉“-”后就是一个播               放凭证,如003f810e-20b3-4da7-88af-3e3d439b528c 去掉“-”后是003f810e20b34da788af3e3d439b528c。

             一次性——播放凭证生成后即放入redis中,key为播放凭证,value为用户id,并设置key的过期时间为10秒。该key被                   get一次后,随即删除该key使之失效。

             时效性——跳转到第三方视频播放地址后,在播放视频前需要回调平台接口,验证URL中的播放凭证,验证后,随即删               除redis中保存的该播放凭证。如果redis中的播放凭证没有被使用到,也会在10秒后自动过期。

②用AES-128-ECB解密后端返回的加密后的URL,并跳转到该URL,即第三方视频网站

③第三方视频网站播放视频

  • 首先验证URL中是否带有播放凭证,没带有则不允许播放,带有则调用平台接口验证URL中的播放凭证(平台接口会根据播放凭证为key去redis中get,如果有则有效,无则无效,get之后,删除该播放凭证即该key
  • 根据平台接口验证结果决定是否播放,验证失败提示无权限,验证通过则播放

 

④总体流程图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值