一种数据处理方法、装置和存储介质与流程

文档序号:19749878发布日期:2020-01-21 19:14阅读:251来源:国知局
一种数据处理方法、装置和存储介质与流程

本申请涉及互联网技术领域,尤其涉及一种数据处理方法、装置和存储介质。



背景技术:

webview插件作为native端接收新一代超文本标记语言(hypertextmarkuplanguage5,html5)链接的容器,需要与html5链接进行通信交互,通过handlemessage消息协议作为主消息入口,再进行bridge事件的具体分发,如设置页面标题,动态显示右上角分享,保存图片到相册等。但目前这种交互针对统一资源定位符(uniformresourcelocator,url)的域名有严格要求,只支持部分已经确定的域名,没有扩展性,无法接入一些需要进行外部合作渠道的html5链接。另外,在与其它外部合作渠道的html5链接进行通信时,可能通过bridge事件获取到项目体系中的基本信息,安全性无法得到保障。



技术实现要素:

本申请实施例提供了一种数据处理的方法,克服了前端在加载外部链接时只能加载部分已经确定的外部链接,且在加载时存在的不安全问题,提升了外部链接的扩展性和加载安全性。

该方法包括:

加载外部链接,并生成与所述外部链接相应的token;

接收所述外部链接携带的桥接方法;

对与所述外部链接相应的所述token进行鉴权,并在对所述token鉴权有效时,对所述桥接方法进行鉴权;

当在对所述桥接方法鉴权有效时,调用鉴权有效的所述桥接方法以加载与所述桥接方法对应的外部链接。

可选地,判断与所述外部链接相应的所述token是否为空,并在所述token为空时停止鉴权;

当所述token不为空时,确定所述token鉴权有效。

可选地,在前端缓存的第一桥接方法列表中查询是否存在与所述token对应的所述外部链接携带的桥接方法,并当在所述第一桥接方法列表中查询到与所述token对应的所述外部链接携带的桥接方法时,对所述桥接方法进行鉴权;

当在所述第一桥接方法列表中查未询到与所述token对应的所述外部链接携带的桥接方法时,将与所述token对应的所述外部链接携带的桥接方法存储在所述第一桥接方法列表中。

可选地,获取所述token的有效时长和接收所述token的接收时间,并将所述接收时间和所述当前时间的时间差与所述有效时长进行比较;

当所述时间差小于所述有效时长时,查询缓存的所述桥接方法是否在第二桥接方法列表中,其中,所述第二桥接方法列表包含所述前端授权的所述桥接方法;

当在所述第二桥接方法列表中查询到所述桥接方法时,确定所述桥接方法有效。

可选地,当所述时间差大于所述有效时长时和/或在所述第二桥接方法列表中未查询到所述桥接方法时,停止对所述桥接方法进行鉴权,并删除缓存在所述第一桥接方法列表中的对应的所述桥接方法。

在本发明的另一个实施例中,提供了一种数据处理的装置,该装置包括:

加载模块,用于加载外部链接,并生成与所述外部链接相应的token;

接收模块,用于接收所述外部链接携带的桥接方法;

第一鉴权模块,用于对与所述外部链接相应的所述token进行鉴权,并在对所述token鉴权有效时,对所述桥接方法进行鉴权;

调用模块,用于当在对所述桥接方法鉴权有效时,调用鉴权有效的所述桥接方法以加载与所述桥接方法对应的外部链接。

可选地,所述第一鉴权模块包括:

判断子单元,用于判断与所述外部链接相应的所述token是否为空,并在所述token为空时停止鉴权;

第一确定子单元,用于当所述token不为空时,确定所述token鉴权有效。

可选地,所述装置还包括:

第二鉴权模块,用于在前端缓存的第一桥接方法列表中查询是否存在与所述token对应的所述外部链接携带的桥接方法,并当在所述第一桥接方法列表中查询到与所述token对应的所述外部链接携带的桥接方法时,对所述桥接方法进行鉴权;

存储模块,用于当在所述第一桥接方法列表中查未询到与所述token对应的所述外部链接携带的桥接方法时,将与所述token对应的所述外部链接携带的桥接方法存储在所述第一桥接方法列表中。

可选地,所述第一鉴权模块还包括:

获取子单元,用于获取所述token的有效时长和接收所述token的接收时间,并将所述接收时间和所述当前时间的时间差与所述有效时长进行比较;

查询子单元,用于当所述时间差小于所述有效时长时,查询缓存的所述桥接方法是否在第二桥接方法列表中,其中,所述第二桥接方法列表包含所述前端授权的所述桥接方法;

第二确定子单元,用于当在所述第二桥接方法列表中查询到所述桥接方法时,确定所述桥接方法有效。

可选地,第一鉴权模块还包括:

停止子单元,用于当时间差大于有效时长时和/或在第二桥接方法列表中未查询到桥接方法时,停止对桥接方法进行鉴权,并删除缓存在第一桥接方法列表中的对应的桥接方法。

在本发明的另一个实施例中,提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行上述一种数据处理的方法中的各个步骤。

在本发明的另一个实施例中,提供了一种终端设备,包括处理器,所述处理器用于执行上述一种数据处理的方法中的各个步骤。

基于上述实施例,首先加载外部链接,并生成与外部链接相应的token,其次,接收外部链接携带的桥接方法,进一步地,对与外部链接相应的token进行鉴权,并在对token鉴权有效时,对桥接方法进行鉴权,最后,当在对桥接方法鉴权有效时,调用鉴权有效的桥接方法以加载与桥接方法对应的外部链接。本申请实施例通过在加载外部链接时,根据外部链接生成token,并通过对token和外部链接携带的桥接方法分别进行鉴权,确定是否可以加载该外部链接。通过上述方式提升了加载的外部链接的扩展性,不再局限于加载预先授权的外部链接。同时,在加载外部链接时,通过对生成的token和桥接方法进行双重鉴权,提升了加载外部链接的安全性。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例100所提供的一种数据处理的方法的流程示意图;

图2示出了本申请实施例200提供的一种数据处理的方法的具体流程的示意图;

图3示出了本申请实施例300还提供一种数据处理的装置的示意图;

图4示出了本申请实施例400所提供的一种终端设备的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。

基于现有技术中的问题,本申请实施例提供了一种数据处理的方法,主要适用于互联网技术领域。通过对需要加载的外部链接生成的token和携带的桥接方法进行双重鉴权,确定外部链接的合法性,以实现一种数据处理的方法。下面以具体实施例对本发明的技术方案进行详细说明。以下几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。如图1所示,为本申请实施例100提供的一种数据处理的方法的流程示意图。其中,详细步骤如下:

s11,加载外部链接,并生成与外部链接相应的token。

本步骤中,本申请实施例中的外部链接主要指html5链接。html5链接是一种包括html、层叠样式表(cascadingstylesheets,css)和javascript的技术组合,通过提供的语义特性、本地存储特性、设备兼容特性、连接特性、网页多媒体特性等多种语法特征实现自适应网页设计,不同浏览器适应等功能。同时,可以使得所有浏览器和客户端能够一致地处理语法错误。进一步地,在加载外部链接时,同时生成与外部链接相应的token。其中,token由后台的内容管理系统(contentmanagementsystem,cms)生成,由html5链接携带至客户端。token是在加载外部链接时由cms生成的一串字符串,通过将应用唯一标识符(applicationbundleidentifier,appbundleid),媒体访问控制(mediaaccesscontroladdress,mac)地址、随机数、请求的外部链接的域名等字段混合并通过sha256算法加密生成,用于校验外部链接的合法性。

s12,接收外部链接携带的桥接方法。

本步骤中,桥接方法(bridgemethod)主要为前端和客户端之间进行双向通信的通信协议,提供客户端native调用html5逻辑或者html5调用客户端native的代码逻辑的一种能力。主要为前端提供调用外部链接的接口,使得前端可以通过webview提供的接口,向客户端的对象中注入对象或者方法,直接执行相应的html5的代码逻辑,在执行html5与客户端进行交互时,可以调用native的能力,比如html5可以通过对应的桥接方法调用前端的相机功能等原生功能。进一步地,在获取外部链接时,由cms提前约定外部链接html5应当对应哪些桥接方法,并由外部链接携带这些桥接方法。

s13,对与外部链接相应的token进行鉴权,并在对token鉴权有效时,对桥接方法进行鉴权。

本步骤中,在获取了外部链接的token和桥接方法后,分别对token和桥接方法进行鉴权。可选地,首先检测token是否为空。在加载外部链接时,由cookie机制提供对应的token。但cookie有时效性可能不稳定,且不能保证获取到全部的生成token的条件,可能存在token为空的情况。当在检测到token不为空时,检测对应的桥接方法是否为已经授权的桥接方法。进一步地,当token为空时,不再进行对桥接方法的鉴权。

s14,当在对桥接方法鉴权有效时,调用鉴权有效的桥接方法以加载与桥接方法对应的外部链接。

本步骤中,在对桥接方案进行鉴权后,确定为已经授权的桥接方法后,通过调用有效的桥接方法实现加载与该鉴权成功的桥接方法对应的外部链接。另外,当该桥接方法经鉴权为无效时,不再加载该外部链接。

如上所述,基于上述实施例,首先加载外部链接,并生成与外部链接相应的token,其次,接收外部链接携带的桥接方法,进一步地,对与外部链接相应的token进行鉴权,并在对token鉴权有效时,对桥接方法进行鉴权,最后,当在对桥接方法鉴权有效时,调用鉴权有效的桥接方法以加载与桥接方法对应的外部链接。本申请实施例通过在加载外部链接时,根据外部链接生成token,并通过对token和外部链接携带的桥接方法分别进行鉴权,确定是否可以加载该外部链接。通过上述方式提升了加载的外部链接的扩展性,不再局限于加载预先授权的外部链接。同时,在加载外部链接时,通过对生成的token和桥接方法进行双重鉴权,提升了加载外部链接的安全性。

如图2所示,为本申请实施例200提供的一种数据处理的方法的具体流程的示意图。其中,该具体流程的详细过程如下:

s201,加载外部链接。

这里,通过webview加载外部链接html5,实现前端与外部链接之间的通信。其中,webview用于加载并显示网页,可以展示经过网络请求后的内容。一般地,安卓系统(android)会通过webview来加载html5页面。webview可以通过加载url来加载服务器侧的h5页面,也可以加载存放在本地并包括关联的css和javascript文件的本地html5页面。针对贝壳目前接入的外部链接例如有“lianjia.com”、“ke.com”等。

s202,生成与外部链接相应的token。

这里,通过webview提供的接口,向html5的对象中注入对象或者方法,让前端在调用时,直接执行相应的native代码逻辑。进一步地,在加载外部链接时,由cms生成与外部链接相应的token,与外部链接相应的token一般由应用唯一标识符(applicationbundleidentifier,appbundleid),媒体访问控制(mediaaccesscontroladdress,mac)地址、随机数、请求的外部链接的域名等字段混合并通过sha256算法加密生成。

s203,接收与外部链接携带的桥接方法。

这里,在启动html5和前端之间的线程时,创建消息队列,并通过创建handle对象驱动消息进程。进一步地,调用handle对象的handlemessage协议作为html5和前端之间的通信协议。进一步地,触发handlemessage协议获取外部链接携带的桥接方法的名称,如设置顶部导航右侧按钮(setrightbuttontoken)、获取用户信息(getuserinfo)、打开safari浏览器(openinsafari)、掉起分享组件(actionsharetoken)、给予回调事件(callandback)、调用客户端native能力---这个最常用最强大(actionwithurltoken)、复制文本到h5(copystring)、关闭h5页面(closeweb)、下载图片到相册(saveimageurl)、保存图片到相册(saveimage)等。基于业务场景,由cms确定外部链接的桥接方法数量。

步骤s202和步骤s203的执行没有先后顺序,可以同时执行。

s204,判断token是否为空。

本步骤中,判断生成的token中是否包含由应用唯一标识符(applicationbundleidentifier,appbundleid),媒体访问控制(mediaaccesscontroladdress,mac)地址、随机数、请求的外部链接的域名等字段混合并通过sha256算法加密生成的字符串。

s205,当token为空时,停止鉴权。

s206,确定token鉴权有效。

这里,当token不为空时,确定token鉴权有效。

s207,在第一桥接方法列表中查询是否已缓存该桥接方法。

本步骤中,在前端缓存的第一桥接方法列表中查询是否存在与token对应的外部链接携带的桥接方法,并当在第一桥接方法列表中查询到与token对应的外部链接携带的桥接方法时,对桥接方法进行鉴权。可选地,在前端已经加载过该桥接方法时,此时将该桥接方法在前端进行存储,形成第一桥接方法列表。其中,第一桥接列表中缓存的桥接方法不一定为已经授权的桥接方法。第一桥接方法列表是通过对应的token传入到前端接口,如果查询到已缓存该桥接方法,则返回kmethodlist和kexpirestime两个字符串,其中kmethodlist为保存所有通过校验的桥接方法的名称的数组如:[setpagetitle,setrightbutton],kexpirestime用于后续检验token是否过期。

s208,进行缓存。

本步骤中,当在第一桥接方法列表中查未询到与token对应的外部链接携带的桥接方法时,将与token对应的外部链接携带的桥接方法存储在第一桥接方法列表中。

s209,判断token是否过期。

本步骤中,获取token的有效时长和接收token的接收时间,并将接收时间和当前时间的时间差与有效时长进行比较。可选地,在接收token时同时获取token的有效时长。

s210,在第二桥接方法列表中查询是否包含该桥接方法。

这里,当时间差小于有效时长时,查询缓存的桥接方法是否在第二桥接方法列表中,其中,第二桥接方法列表包含前端授权的桥接方法。可选地,第二桥接列表中是已经确定的授权的桥接方法。

s211,调用鉴权有效的桥接方法以加载与桥接方法对应的外部链接。

这里,当在第二桥接方法列表中查询到桥接方法时,确定桥接方法有效。

s212,停止对桥接方法进行鉴权,并在第一桥接方法列表中删除对应的桥接方法。

这里,当时间差大于有效时长时和/或在第二桥接方法列表中未查询到桥接方法时,停止对桥接方法进行鉴权,并删除缓存在第一桥接方法列表中的对应的桥接方法。

本申请基于上述步骤实现上述一种数据处理的方法,其中,针对现有技术中一般将代码硬编码的写在客户端组件里,如果需要支持更多域名,需要排期发版本解决,效率较低,以及粒度比较粗放,只能控制在域名级别的,无法控制到具体的交互方法上和安全级别比较低,外部html5可通过部分桥接方法获取到前端的一些基本信息的问题,在前端和html5之间的交互中引入对token和桥接方法的双重鉴权机制,只在有效期内才能使用对应的桥接方法,过期需要重新生成token,重新鉴权。可选地,通过将appbundleid,mac地址、随机数、请求链接的域名等字段混合经过sha256加密生成的token,获取授权的第二桥接方法列表。其中,首先通过token传入到接口第一桥接方法列表进行检测是否存在缓存,如果检验通过则返回kmethodlist和kexpirestime两个字符串,其中,其中kmethodlist为保存所有通过校验的桥接方法的名称的数组如:[setpagetitle,setrightbutton],kexpirestime用于后续检验token是否过期。另外,handlemessage是html5和前端之间进行通信的通信协议,如判断是否是beike.com\lianjia.com等授权的域名。通过协议传入的token和桥接方法的名称(如setrighgtbtn)来达到对bridge粒度的控制。本申请实施例通过判断外部链接调用的桥接方法是否满足token鉴权成功且不过期,以及此桥接方法存在于已经授权的第二桥接方法列表中,采用高性能的归档方案存储第二桥接方法列表的请求结果,保证有效期内只请求一次,提高外部链接的打开速度,解决了对于外部链接的动态扩展性的问题,提高研发效率,同时,提高产品安全性,可以更小粒度的对外暴露接口。

基于同一发明构思,本申请实施例300还提供一种数据处理的装置,其中,如图3所示,该装置包括:

加载模块31,用于加载外部链接,并生成与外部链接相应的token;

接收模块32,用于接收外部链接携带的桥接方法;

第一鉴权模块33,用于对与外部链接相应的token进行鉴权,并在对token鉴权有效时,对桥接方法进行鉴权;

调用模块34,用于当在对桥接方法鉴权有效时,调用鉴权有效的桥接方法以加载与桥接方法对应的外部链接。

本实施例中,加载模块31、接收模块32、第一鉴权模块33和调用模块34的具体功能和交互方式,可参见图1对应的实施例的记载,在此不再赘述。

可选地,第一鉴权模块33包括:

判断子单元,用于判断与外部链接相应的token是否为空,并在token为空时停止鉴权;

第一确定子单元,用于当token不为空时,确定token鉴权有效。

可选地,该装置还包括:

第二鉴权模块35,用于在前端缓存的第一桥接方法列表中查询是否存在与token对应的外部链接携带的桥接方法,并当在第一桥接方法列表中查询到与token对应的外部链接携带的桥接方法时,对桥接方法进行鉴权;

存储模块36,用于当在第一桥接方法列表中查未询到与token对应的外部链接携带的桥接方法时,将与token对应的外部链接携带的桥接方法存储在第一桥接方法列表中。

可选地,第一鉴权模块33还包括:

获取子单元,用于获取token的有效时长和接收token的接收时间,并将接收时间和当前时间的时间差与有效时长进行比较;

查询子单元,用于当时间差小于有效时长时,查询缓存的桥接方法是否在第二桥接方法列表中,其中,第二桥接方法列表包含前端授权的桥接方法;

第二确定子单元,用于当在第二桥接方法列表中查询到桥接方法时,确定桥接方法有效。

可选地,第一鉴权模块33还包括:

停止子单元,用于当时间差大于有效时长时和/或在第二桥接方法列表中未查询到桥接方法时,停止对桥接方法进行鉴权,并删除缓存在第一桥接方法列表中的对应的桥接方法。

如图4所示,本申请的又一实施例400还提供一种终端设备,包括处理器401,其中,处理器401用于执行上述一种数据处理的方法的步骤。从图4中还可以看出,上述实施例提供的终端设备还包括非瞬时计算机可读存储介质402,该非瞬时计算机可读存储介质402上存储有计算机程序,该计算机程序被处理器401运行时执行上述一种数据处理的方法的步骤。实际应用中,该终端设备可以是一台或多台计算机,只要包括上述计算机可读介质和处理器即可。

具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘和flash等,该存储介质上的计算机程序被运行时,能够执行上述的一种数据处理的方法中的各个步骤。实际应用中,所述的计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或多个程序被执行时,能够执行上述的一种数据处理的方法中的各个步骤。

根据本申请公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本申请保护的范围。在本申请公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

本申请附图中的流程图和框图,示出了按照本申请公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标注的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本申请中。特别地,在不脱离本申请精神和教导的情况下,本申请的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本申请公开的范围。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1