通过第三方服务器登录开放平台的方法与流程

文档序号:18898982发布日期:2019-10-18 21:40阅读:768来源:国知局
通过第三方服务器登录开放平台的方法与流程

本申请涉及软件服务技术领域,尤其涉及一种通过第三方服务器登录开放平台的方法。



背景技术:

第三方应用是指开放平台下的外部应用,可以集成开放平台所提供的sdk提供相应服务(例如,外部应用集成了开发平台的语音识别sdk,以获得语音识别功能)。目前,最常用的账号系统对接的方式是通过oauth的方式,建立用户在外部账号系统和开放平台的身份识别信息对应关系,获取开放平台的访问令牌,并以此访问对方服务。

oauth授权是一种使第三方应用在不触及到用户在开放平台的帐号信息(用户名与密码)时就可以申请获得该用户在开放平台的资源的授权方式。需要用户完成一次在开放平台的账号登陆并授权,然后第三方应用在得到授权后向服务平台获取访问令牌,并以此访问平台提供的服务。

如果第三方应用拥有自己的账号系统,且第三方应用要求用户使用第三方自己的账号进行登陆,这时如果第三方应用仍以oauth方式与开放平台对接,那么用户在登陆了第三方账号后,还需要一次登陆授权过程以完成开放平台对第三方服务的授权,整个过程用户需要进行两次的登陆。

发明人在实现本申请的过程中发现,为解决上述问题,现有技术中采用账号互通的方法,即第三方应用需要把自己账号系统的用户名和密码同步给开放平台,这容易造成用户信息的泄露或丢失。



技术实现要素:

本申请实施例提供一种通过第三方服务器登录开放平台的方法,用于至少解决上述技术问题之一。

第一方面,本申请实施例提供一种通过第三方服务器登录开放平台的方法,用于第三方服务器,所述方法包括:

接收用户通过客户端所上传的注册登录信息;

验证所述注册登录信息,以完成用户在客户端的登录;

向所述客户端发送登录成功通知,以触发所述客户端向开放平台服务器发送登录请求,所述登录请求中至少包括用户身份信息,以用于所述开放平台服务器生成相关联的虚拟登录账户实现虚拟登录,向所述客户端发送登录成功通知并展示给用户。

第二方面,本申请实施例提供另一种通过第三方服务器登录开放平台的方法,用于开放平台服务器,所述方法包括:

接收客户端发送来的登录请求,所述登录请求是在用户通过所述客户端所上传的注册登录信息通过第三方服务器验证之后生成的;

解析所述登录请求,以获得所述登录请求中所包含的用户身份信息;

至少根据所述用户身份信息生成虚拟登录账户用于进行虚拟登录。

第三方面,本申请实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本申请上述任一项通过第三方服务器登录开放平台的方法。

第四方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请上述任一项通过第三方服务器登录开放平台的方法。

第五方面,本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项通过第三方服务器登录开放平台的方法。

本申请实施例的有益效果在于:在第三方服务器端验证用户的注册登录信息之后,进一步地向开放平台服务器发送包含了用户身份信息(uid)的登录请求,并且开放平台服务器基于uid生成关联的虚拟账户进行虚拟登录,从而无需将用户在第三方服务器端的注册信息同步给开放平台即可实现在开放平台的登录,并获取该开放平台所提供的服务。确保了用户的注册登录信息的隐私性,避免了用户的注册登录信息外泄的隐患。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请的通过第三方服务器登录开放平台的方法的一实施例的流程图;

图2为本申请的通过第三方服务器登录开放平台的方法的另一实施例的流程图;

图3为本申请的通过第三方服务器登录开放平台的方法的又一实施例的流程图;

图4为本申请的通过第三方服务器登录开放平台的方法的再一实施例的流程图;

图5为本申请的电子设备的一实施例的结构示意图。

具体实施方式

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

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

在本申请中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本申请的通过第三方服务器登录开放平台的方法的一种实际场景可以为:

开放平台可以是以提供语音技术服务的开放平台,开发者在该平台上可以开发语音识别sdk,并应用在自己产品上从而赋予自己开发的产品语音识别功能,当然还可以集成有自己的sdk。

第三方app集成了开放平台提供的sdk,里面封装的有提供服务的接口、如智能家居、设备绑定、应用商店等等。

第三方服务器对应于第三方厂商,例如,空调厂商。该空调厂商依托书开放平台所提供的具备语音识别功能的sdk,是的生产的空调具备了语音控制的功能。

终端用户在购买了第三方厂商的空调之后,需要下载第三方厂商定制的应用程序客户端安装到自己的终端设备上(例如,职能手机或者平板电脑等)。并且用户需要在此应用程序客户端进行注册之后登陆才能实现对空调的控制。

示例性地,本申请的方法可以包括以下步骤:

1)、第三方厂商需要先在开放平台注册自己提供的用来校验uid合法性的接口,用来接收开发平台发来的uid校验请求。

2)、用户在第三方应用使用第三方账号进行登陆;第三方应用完成第三方账号的登陆验证后又通过开放平台的sdk向开放平台发起登陆的请求。

3)、登陆成功后,第三方应用调用开放平台提供的接口,传递厂商标识+用户身份标识uid+token。

以上3个参数,一个厂商的标识(密文,这个在厂商向开放平台注册校验地址的时候由开放平台颁发给厂商),一个uid,还有一个token。其中,token由第三方厂商生成,用来给开放平台调用uid校验地址时使用,开放平台请求uid校验的接口时会带上这个token,用作身份验证,可以防止厂商的接口被恶意调用或攻击。

4)开放平台收到请求后,向第三方服务发送请求并附带toen,对uid进行验证。

开放平台请求uid校验接口时附带上的token,就是第3步从app传上来的token;

开放平台创建用户成功后,会生成新的token,新的token会下发给sdk即app端,用以后续请求开放平台提供的服务。

本申请实施例中,开放平台本身不必校验第三方账号系统下的uid合法性,开放平台也不用获取第三方账号系统下的任何用户的信息,而是让第三方服务来提供uid校验的接口,开放平台来调用。

这样的好处:开放平台不需要具备校验第三方平台的uid的能力,不需要获取第三方平台的任何用户信息,这些都是双方都期望的,尤其是第三方平台不期望开放平台获取其账户系统下的任何用户信息,确保了用户信息的安全性。

token由第三方服务生成,在登陆时通过sdk传给开放平台,开放平对该token不作处理,仅仅是在请求uid校验服务时带上该token,来表明调用者的身份的合法性。至于第三方服务如何验证uid和token,这个由第三方服务自己实现,本申请对此不作限定。

作为一种具体的实施例:token是密文,里面包含有当前用户的uid和用户名,第三方服务解开密文后会取出对应的字段做对比,如果是一致的,且uid是真实存在的,就通过验证。

uid的合法性校验至关重要,如果直接全部返回校验通过,开放平台的sdk被不法分子使用了,那随便上传一个假的uid开放平台都会走创建账号的流程,很容易被恶意攻击。

5)、第三方服务验证通过后,返回相应结果;

6)、开放平台创建新的用户账户,并与uid建立映射关系,并将对应产生的访问令牌(即,新的token)发放给内部相关服务;

7)、开放平台回复上述3)过程中第三方应用的请求,完成系统的打通。

如图1所示,本申请的实施例提供一种通过第三方服务器登录开放平台的方法,用于第三方服务器,所述方法包括:

s11、接收用户通过客户端所上传的注册登录信息。注册登录信息包括用户名和登录密码。

示例性地,用户可以通过安装在自己的智能手机上的客户端的登录界面输入注册登录信息之后上传至第三方服务器进行验证登录。

s12、验证所述注册登录信息,以完成用户在客户端的登录。

第三方服务器接收到注册登录信息之后,对其合法性进行验证,如果通过验证,则完成用户在第三方服务器的登录。

s13、向所述客户端发送登录成功通知,以触发所述客户端向开放平台服务器发送登录请求,所述登录请求中至少包括用户身份信息,以用于所述开放平台服务器生成相关联的虚拟登录账户实现虚拟登录,向所述客户端发送登录成功通知并展示给用户。

示例性地,所述客户端集成有源于所述开放平台的sdk;所述向开放平台服务器发送登录请求包括:通过所述sdk向所述开放平台服务器发送登录请求。

本申请实施例中,在第三方服务器端验证用户的注册登录信息之后,进一步地向开放平台服务器发送包含了用户身份信息(uid)的登录请求,并且开放平台服务器基于uid生成关联的虚拟账户进行虚拟登录,从而无需将用户在第三方服务器端的注册信息同步给开放平台即可实现在开放平台的登录,并获取该开放平台所提供的服务。确保了用户的注册登录信息的隐私性,避免了用户的注册登录信息外泄的隐患。

在一些实施例中,所述登录请求中还包括第三方标识信息和第一访问令牌;如图2所示,在本申请的通过第三方服务器登录开放平台的方法的一些实施例中,在所述向开放平台服务器发送登录请求之后还包括:

s21、响应于所述开放平台服务器的请求,调用预先注册的校验接口接收来自所述开放平台服务器的检验请求。

示例性地,登录请求中包含有第三方标识信息、用户身份信息和第一访问令牌信息。开放平台服务器接收到登录请求之后,对其进行解析以确定所包含的第三方标识信息,并通过查询确定对应于第三方标识信息的注册接口地址信息,并按照该注册接口地址信息发送校验请求至第三方服务器。

其中,注册接口地址信息是第三方厂商与开放平台之间确定合作之后,第三方厂商提供给开放平台的,以供后续请求建立登录连接时进行合法性验证。

示例性地,开放平台的服务器中存储了大量第三方厂商的注册接口地址信息和相应第三方标识信息对,以供查询。

s22、解析所述校验请求,以确定所述校验请求中是否包含有所述用户身份信息和所述第一访问令牌信息,并生成校验结果。

第三方服务器通过预先注册的校验接口接收到校验请求之后,对其进行解析并获取用户身份信息和第一访问令牌信息,并与本地存储的用户身份信息和访问令牌信息对进行比对验证,如果本地存在相同信息,则认为当前用户为合法用户,并生成校验结果。

其中,第一令牌信息和用户身份信息是在向开放平台服务器发送登录请求时客户端所发送的。

s23、发送所述校验结果至所述开放平台服务器判定是否实现虚拟登录。

本申请实施例中的校验是在第三方服务器进行的,而不是在开放平台进行,从而极大的减轻了开放平台的负担,保证了开放平台能够更加安全平稳的运行以更好的为众多第三方厂商提供优质的服务。

此外,由于注册接口地址信息是第三方厂商预先提供给开放平台的,而非建立登录连接过程中客户端或者第三方服务器提供给开放平台,从而确保了发送校验请求的地址信息的可靠性,避免了不法分子非法获得开放平台sdk,并无偿获得服务,甚至对开放平台进行恶意攻击的风险。

如图3所示,为本申请的通过第三方服务器登录开放平台的方法的另一实施例的流程图,该方法用于开放平台服务器,该方法包括:

s31、接收客户端发送来的登录请求,所述登录请求是在用户通过所述客户端所上传的注册登录信息通过第三方服务器验证之后生成的;

s32、解析所述登录请求,以获得所述登录请求中所包含的用户身份信息;

s33、至少根据所述用户身份信息生成虚拟登录账户用于进行虚拟登录。

本申请实施例中,在第三方服务器端验证用户的注册登录信息之后,进一步地向开放平台服务器发送包含了用户身份信息(uid)的登录请求,并且开放平台服务器基于uid生成关联的虚拟账户进行虚拟登录,从而无需将用户在第三方服务器端的注册信息同步给开放平台即可实现在开放平台的登录,并获取该开放平台所提供的服务。确保了用户的注册登录信息的隐私性,避免了用户的注册登录信息外泄的隐患。

在一些实施例中,所述登录请求中还包括第三方标识信息和第一访问令牌。本申请的通过第三方服务器登录开放平台的方法的一实施例中还包括:根据所述第三方标识信息确定相应的预先注册的接口地址;

根据所确定的预先注册的接口地址向所述第三方服务器发送校验请求,以用于所述第三方服务器确定所述校验请求中是否包含有所述用户身份信息和所述第一访问令牌信息,并生成校验结果;

接收来自所述第三方服务器的校验结果。

本申请实施例中的校验是在第三方服务器进行的,而不是在开放平台进行,从而极大的减轻了开放平台的负担,保证了开放平台能够更加安全平稳的运行以更好的为众多第三方厂商提供优质的服务。

此外,由于注册接口地址信息是第三方厂商预先提供给开放平台的,而非建立登录连接过程中客户端或者第三方服务器提供给开放平台,从而确保了发送校验请求的地址信息的可靠性,避免了不法分子非法获得开放平台sdk,并无偿获得服务,甚至对开放平台进行恶意攻击的风险。

在一些实施例中,所述至少根据所述用户身份信息生成虚拟登录账户用于进行虚拟登录包括:

当所述校验结果为肯定时,根据所述用户身份信息生成虚拟账户用于进行虚拟登录;

生成第二访问令牌,并发送所述第二访问令牌至所述客户端,以用于从所述开放平台服务器请求服务;

向所述客户端发送登录成功通知;

当所述校验结果为否定时,向所述客户端发送登录失败通知。

如图4所示,为本申请的通过第三方服务器登录开放平台的方法的一实施例,该实施例中包括以下步骤:

步骤1,用户通过第三方账号和密码登录第三方app,即在第三方app的登录界面上填写账号和密码之后点击登录按钮;

步骤2,第三方app发送账号和密码至第三方服务器,请求第三方服务器进行用户登录;

步骤3、第三方服务器对接收到的账号和密码进行验证,验证通过向第三方app发送登录成功消息,需要注意的是,这里的登录成功消息仅仅用于触发第三方app进一步请求登录开放平台,而并不用作显示并呈现给用户登录成功界面;

步骤4,第三方app向开放平台服务器发送用户登录请求,登录请求中包括厂商标识、uid和tokena;

步骤5,开放平台服务器根据厂商标识查找对应的校验接口地址信息,并通过该校验接口地址信息向第三方服务器发送校验请求,校验请求中至少包含有uid和tokena;

步骤6,第三方服务器根据校验请求进行校验以确定当前用户是否合法,并发送校验结果至开放平台服务器;

步骤7,当开放平台服务器所接收到的校验结果表明,当前用户为合法用户时,开放平台服务器创建平台账号,建立uid和所创建的平台账号之间的映射关系,以用于当前用户获取平台服务;

步骤8,开放平台服务器向第三方app发送登录成功通知,以及uid和tokenb,该tokenb用于合法的当前用户从开放平台获取服务;

步骤9,第三方app通知用户登录成功。

本申请实施例至少具有以下技术效果及进步:

1、此方法不需要第三方应用的用户多次进行登陆的操作,只需要登陆一次,第三方服务和开发平台服务的打通过程用户无感知,有很好的用户体验;

2、此方法不需要第三方应用向开放平台同步自己的用户名和密码等用户敏感信息,即可完成服务的打通,安全性较高;

3、此方法统一规定了第三方服务需要实现的校验接口的格式,方便各第三方应用统一接入开放平台,减少了双方开发人员的开发量,大大提高接入速度。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在一些实施例中,本申请实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本申请上述任一项通过第三方服务器登录开放平台的方法。

在一些实施例中,本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项通过第三方服务器登录开放平台的方法。

在一些实施例中,本申请实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行通过第三方服务器登录开放平台的方法。

在一些实施例中,本申请实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现通过第三方服务器登录开放平台的方法。

图5是本申请另一实施例提供的执行通过第三方服务器登录开放平台的方法的电子设备的硬件结构示意图,如图5所示,该设备包括:

一个或多个处理器510以及存储器520,图5中以一个处理器510为例。

执行通过第三方服务器登录开放平台的方法的设备还可以包括:输入装置530和输出装置540。

处理器510、存储器520、输入装置530和输出装置540可以通过总线或者其他方式连接,图5中以通过总线连接为例。

存储器520作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的通过第三方服务器登录开放平台的方法对应的程序指令/模块。处理器510通过运行存储在存储器520中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的通过第三方服务器登录开放平台的方法。

存储器520可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据通过第三方服务器登录开放平台的装置的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器520可选包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至通过第三方服务器登录开放平台的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置530可接收输入的数字或字符信息,以及产生与通过第三方服务器登录开放平台的装置的用户设置以及功能控制有关的信号。输出装置540可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器520中,当被所述一个或者多个处理器510执行时,执行上述任意方法实施例中的通过第三方服务器登录开放平台的方法。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请实施例的电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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