写点什么

OTT 端登录态设备穿透:扫码登录与反登录

  • 2020-04-04
  • 本文字数:2592 字

    阅读完需:约 9 分钟

OTT 端登录态设备穿透:扫码登录与反登录

一、背景

手机设备相较于台式电脑、笔记本电脑,具备更强的“私有-私密性”,因此在智能手机中安装 APP 应用后,登录态可长期保存,这也直接导致了用户对于应用/站点密码记忆度大幅下降,“扫码登录”技术随之被普及。


但是到了 OTT 大屏电视场景,扫码登录是如何实现的呢?本文将以优酷“CIBN 酷喵影视”为例,详解 OTT 大屏中的“扫码登录“与“扫码反登”的技术实现策略。

二、OTT 端登录需求

OTT 从开发语言、操作理念等都遵循手机 APP 相关规范,区别在于 APP 为触屏操作,OTT 为遥控器操作。自然地,很多年轻人更习惯在手机上完成操作,实现优酷手机 APP 与 OTT APP(CIBN 酷喵影视)的无缝衔接。这其中就涉及到了账号登录态同步的问题,而且二者存在众多登录场景的互动。


所以,除了常规的“扫码登录”(通过手机操作,将手机端登录态同步至 PC/OTT 端),在 OTT 场景下,还衍生出了“扫码反登”。



扫码反登:指将 OTT 端账号登录态,同步至手机端,使手机端在扫码相关操作完成后,跳转至指定页面。优势是,由手机端完成 OTT 相应操作,同时避免手机端无登录态、登录账号不统一等带来业务操作上的偏差。


具体的“扫码反登”业务场景可分为四类:


1)登录:OTT 端酷喵应用登录二维码;


2)客服:各种业务类型客服小蜜二维码;


3)互动:OTT 端活动投放,与小屏配合互动-扫码;


4)支付:OTT 端二维码收银台。

三、同步登录态

在 OTT 端主要有“扫码登录”及“扫码反登录”两类场景业务需求,那么我们先对两种同步登录态实现逻辑进行解读。

1. 扫码正登录

早在数年前已经普及,在 OTT 端也是首发登录方式。虽然这是个程序技术,但是也有不少同学感到好奇:一个光秃秃的二维码,是如何完成识别被哪个手机扫码,又是通过什么逻辑实现 OTT 端/PC 端登录的?下面我们进行逻辑拆解:


1)Tips


因为需要将小屏登录同步至 OTT 端,那么该情景 OTT 端与手机端登录情况分别为:


a)OTT 端-未登录;


b)手机端-未登录/已登录均可。


2)原理图:



3)逻辑解读


①当二维码扫码登录页面被打开时,OTT 端会想服务端发送一个请求,用以获取平台唯一标识值(当然也可以有客户端根据算法自行得出后通知服务端,但严密性存在问题),我们姑且称之为“uuid”,该值作为本次登录的核心参数贯穿整个登录始终;


②服务端在生成这个 uuid 之后,会将其记录(redis 服务器),并建立查找索引逻辑,除了 uuid 通过接口返回前端外,接口返回中“登录验证二维码”url 一并返回,此时 uuid 布设与该 url 参数中;


③前端页操作页面视图显示该二维码,该二维码实际为 passport 登录验证页面;


④在展示二维码的同时,前端将以 uuid 为参数进行登录状态接口验证轮询;


④现在登录状态轮询已开启,而二维码则开始等待手机扫码;


⑤当用户手机端扫码后,会出现两种情况:用户已经登录、用户未登录,那么此时就面临两种逻辑:


a)用户已登录:则 uuid 及用户 cookie 随校验页面直接到达 passport 服务端,服务端跟据 cookie 校验登录状态,并根据本次上行 uuid 去匹配先前(第①项)已记录的 uuid,一经查找成功,则通过内部方法将 cookie 解析生成的 token,与先前 uuid 形成键值关系;


b)用户未登录:则手机端扫码后,一经校验无登录态,则该“passport 登录验证页面”跳转至登录页面。此时,登录页 url 参数中,依旧携带有 uuid 参数,以及扫码登录标识,用于 passport 服务端后续逻辑处理,用户在键入账号密码后点击登录,则登录页跳转回“passport 登录验证页面”,后续流程与前段落一致;


⑥在以上④-1 中已经提到,OTT 端一直在轮询接口登录状态,在完成上文第⑤后,轮询接口再次携带 uuid 请求 passport 服务端,经由 uuid 查询匹配,可以确定本次状态为“手机端已操作确认登录”,那么该次轮询接口返回中已经明确登录状态,并且将第⑤项中生成的 token 一并返回。


至此六大过程形成闭环,宣告登录成功,并显示相应已登录视图,扫码正登录也已经完成。

2. 扫码反登录

OTT 端存在一种特有场景,OTT 端本身存在交互操作及功能上的局限,例如付费购买,需要将大屏登录态同步至手机端,在手机端完成强登录操作。


1)Tips


因为需要将 OTT 屏登录同步至手机端,那么该情景 OTT 端与手机端登录情况分别为:


a)OTT 端-已登录


b)手机端-未登录/已登录均可


2)原理图:



3)逻辑解读


①当二维码扫码登录页面被打开时,OTT 端会向服务端携带 token 发送一个请求,用以获取平台唯一标识值“authCode”,该值作为本次反登录的核心参数贯穿整个登录始终;


②服务端生成 authCode 之后,会将 authCode 与请求上行 token 记录(redis 服务器),并建立查找索引逻辑。除了 authCode 通过接口返回前端外,接口返回中“登录验证二维码”url 一并返回,此时 authCode 布设与该 url 参数中;


③前端页操作页面视图显示该二维码,该二维码实际为“passport 登录态种植页面”;


④当用户手机端扫码后,“passport 登录态种植页面”被打开,此时该页面 url 中 authCode 参数,随请求发送与 passport 服务端;


⑤服务端接收到请求并且获取到 authCode,并与先前存储的 authCode 进行匹配,已经匹配成功,则将先前存储的 token 返回,此时手机端登录态已经种植成功。

四、指定跳转

扫码正登与反登是 OTT 端登录业务中的核心环节,但这还没有完整满足 OTT 场景实际需求,我们还需要在手机端登录操作完成之后,跳转到指定页面。这相对于登录态同步要简单得多,可以在 passport 页面后追加一个 callback 参数,参数值为指定页面 url,借助 passport 相关逻辑,在手机端确认登录成功后跳转至该 url,从而实现指定页面跳转。


在上述逻辑实现之后,则完整满足了 OTT 场景需求,而借助同步登录态以及指定跳转这两种能力,则可以进行进一步能力扩展、封装。

五、能力沉淀及扩展场景

优酷“CIBN 酷喵影视”的业务量级非常大且场景相对复杂,在 APP 不断的业务迭代及能力升级过程中,扫码登录的能力也在积累沉淀。目前,“酷喵 APP”扫码登录相关能力已实现以下能力:


1)能力组件化封装:完成“同步登录态-二维码”能力封装,实现相关业务零开发,可视化平台搭建;


2)二维码收银台封装:完成“CIBN 酷喵影视”活动收银台能力封装,扫码直达付款,零开发,可视化搭建;


3)客服小蜜搭建化:借助 1,使反馈不再匿名无序,实现问题排查有“账号”可寻;


4)半屏收银台封装:全屏播放中查半屏,实现超大流量精准引导付费。


作者介绍


阿里文娱高级前端技术开发工程师魏家鲁


2020-04-04 18:071318

评论

发布
暂无评论
发现更多内容

百分点认知智能实验室李生教授:人工智能正在由感知走向认知

百分点认知智能实验室

架构实战营 模块二 课后作业

Lingjun

架构训练营

架构师实战营 模块二作业 微信朋友圈高性能架构分析

好吃不贵

平行世界有尽头:白洞的数字孪生之旅

白洞计划

微服务网关:Nacos源码实践(二)

程序员架构进阶

源码分析 nacos 服务治理 28天写作 4月日更

模块二作业:微信朋友圈高性能复杂度分析

@oo?金樱子

我是如何从零开始学Python:(2)如何解决安装和检查Python版本遇到的问题?

广之巅

Python 4月日更

架构训练营 模块二作业

薛定谔的指南针

架构实战营

百度、小红书三面,均遇“赛马”问题

执鸢者

面试 大前端

在JavaScript中使用对象来优化if/else和switch

devpoint

JavaScript 对象 Switch

架构实战营-模块2作业

夏日

架构训练营

微信朋友圈高性能架构复杂度分析

Hesher

微信 架构 高性能 微信朋友圈 架构实战营

Linux tail 命令

一个大红包

4月日更

架构实战营 模块二作业

netspecial

架构实战营

激发Linux+K8S小宇宙!SUSECON硬核上线

Rancher

【案例】星环科技助力郑州商品交易所搭建AI预测模型,提升智能决策水平

星环科技

数字货币——来看党媒怎么说

CECBC

平行世界有尽头:白洞的数字孪生之旅

脑极体

聪明人的训练(十八)

Changing Lin

4月日更

带团队:只有人的行为才能影响行为

石云升

团队建设 28天写作 职场经验 管理经验 4月日更

国内首个全院级医疗区块链基础设施成功部署应用

CECBC

区块链

数字经济需发展隐私计算下的数据共享

CECBC

数字经济

业务架构训练营第 0 期模块二作业

菠萝吹雪—Code

架构实战营

架构实战营 模块二作业

ercjul

架构实战营

朋友圈高性能分析

^_^vincent

【架构实战营】第 2模块作业

swordman

架构实战营

架构训练营模块二作业

Geek_e0c25c

架构训练营

Sqlserver2008参数化踩的坑

风翱

SqlServer 4月日更

架构训练营模块 2 作业 - 江哲

江哲

架构实战营 模块二 如何抓住架构设计的关键点

9527

微信朋友圈架构设计

俞嘉彬

#架构实战营

OTT 端登录态设备穿透:扫码登录与反登录_文化 & 方法_阿里巴巴文娱技术_InfoQ精选文章