本公开实施例涉及计算机技术领域,特别涉及一种授权方法、辅助授权组件、管理服务器和计算机可读介质。
背景技术:
目前,基于代码转化工具或者使用统一开发框架,使得开发者应用(例如,智能小程序)一次开发多端可运行,即开发者应用能够支持跨平台运行。一般而言,由于不同的平台所使用的账户管理体现不同,因此当开发者应用在跨平台运行时,需要新宿主平台进行用户信息授权。为此,想要真正实现开发者应用跨平台运行,则要解决跨平台授权的问题。
技术实现要素:
本公开实施例提供一种授权方法、辅助授权组件、管理服务器和计算机可读介质。
第一方面,本公开实施例提供了一种授权方法,其中,该授权方法应用于辅助授权组件,所述辅助授权组件集成于开源宿主应用内,所述授权方法包括:
响应于开发者应用发送的登录请求,获取用户的登录授权信息;
向所述开源宿主应用的账户管理方发送登录授权请求,所述登录授权请求包括:所述登录授权信息;
在所述登录授权信息验证通过后,接收所述账户管理方反馈的授权成功信息,所述登录及授权成功信息包括:授权码;
将所述授权码发送至所述开发者应用,以供开发者应用向管理服务器换取所述授权码所对应的会话密钥。
在一些实施例中,在所述将所述授权码发送至所述开发者应用的步骤之后,还包括:
响应于所述开发者应用发送的用户信息获取请求,将所述用户信息请求转发至所述账户管理方;
接收所述账户管理方反馈的经过加密的用户信息,并将所述用户信息转发至所述开发者应用,以供所述开发者应用基于所述会话密钥对所述用户信息进行解密。
在一些实施例中,所述登录请求包括:所述开源宿主应用的宿主标识;
在所述获取用户的登录授权信息的步骤之后,且在所述向所述开源宿主应用的账户管理方发送登录授权请求的步骤之前,还包括:
根据所述宿主标识确定所述开源宿主应用的账户管理方。
在一些实施例中,所述账户管理方包括:所述管理服务器或所述开源宿主应用内的开源宿主平台。
第二方面,本公开实施例还提供了一种授权方法,其中,所述授权方法应用于管理服务器,所述授权方法包括:
响应于接收开发者应用发送的密钥获取请求,根据所述密钥获取请求中的授权码获取对应的会话密钥;
将所述会话密钥反馈至所述开发者应用。
在一些实施例中,所述根据所述授权码获取对应的会话密钥的步骤包括:
确定所述授权码所对应用户的账户管理方;
若所述账户管理方为所述服务器,则生成所述授权码所对应的会话密钥;
若所述账户管理方法为第三方开源宿主平台,则将所述密钥获取请求转发至所述第三方开源宿主平台,以供所述第三方开源宿主平台生成所述授权码所对应的会话密钥;
接收所述第三方开源宿主平台反馈的所述会话密钥。
在一些实施例中,在所述接收开发者应用发送的密钥获取请求步骤之前,还包括:
响应于辅助授权组件发送的登录授权请求,对所述登录授权请求中的登录授权信息进行验证;
在所述登录授权信息验证通过后,向所述辅助授权组件反馈授权成功信息,所述登录及授权成功信息包括:所述授权码。
在一些实施例中,在所述将所述会话密钥反馈至所述接收开发者的步骤之后,还包括:
响应于辅助授权组件发送的用户信息获取请求,获取所请求的用户信息;
使用所述会话密钥对所述用户信息进行加密;
将经过加密的所述用户信息反馈至所述辅助授权组件。
第三方面,本公开实施例还提供了一种辅助授权组件,其中,所述辅助授权组件集成于开源宿主应用内,所述辅助授权组件包括:
第一获取模块,配置为响应于开发者应用发送的登录请求,获取用户的登录授权信息;
第一发送模块,配置为向所述开源宿主应用的账户管理方发送登录授权请求,所述登录授权请求包括:所述登录授权信息;
第一接收模块,配置为在所述登录授权信息验证通过后,接收所述账户管理方反馈的授权成功信息,所述登录及授权成功信息包括:授权码;
第二发送模块,配置为将所述授权码发送至所述开发者应用,以供开发者应用向管理服务器换取所述授权码所对应的会话密钥。
在一些实施例中,该辅助授权组件还包括:
第三发送模块,配置为响应于所述开发者应用发送的用户信息获取请求,将所述用户信息请求转发至所述账户管理方;
第二接收模块,配置为接收所述账户管理方反馈的经过加密的用户信息,并将所述用户信息转发至所述开发者应用,以供所述开发者应用基于所述会话密钥对所述用户信息进行解密。
在一些实施例中,所述登录请求包括:所述开源宿主应用的宿主标识;
所述辅助授权组件还包括:
确定模块,配置为根据所述宿主标识确定所述开源宿主应用的账户管理方。
在一些实施例中,所述账户管理方包括:所述管理服务器或所述开源宿主应用内的开源宿主平台。
第四方面,本公开实施例还提供了一种管理服务器,其中,包括:
第二获取模块,配置为响应于开发者应用发送的密钥获取请求,根据所述密钥获取请求中的授权码获取对应的会话密钥;
第四发送模块,配置为将所述会话密钥反馈至所述接收开发者。
在一些实施例中,所述第二获取模块包括:
确定单元,配置为确定所述授权码所对应用户的账户管理方;
生成单元,配置为若所述账户管理方为所述服务器,则生成所述授权码所对应的会话密钥;
发送单元,配置为若所述账户管理方法为第三方开源宿主平台,则将所述密钥获取请求转发至所述第三方开源宿主平台,以供所述第三方开源宿主平台生成所述授权码所对应的会话密钥;
接收单元,配置为接收所述第三方开源宿主平台反馈的所述会话密钥。
在一些实施例中,所述管理服务器还包括:
验证模块,配置为响应于辅助授权组件发送的登录授权请求,对所述登录授权请求中的登录授权信息进行验证;
第五发送模块,配置为在所述登录授权信息验证通过后,向所述辅助授权组件反馈授权成功信息,所述登录及授权成功信息包括:所述授权码。
在一些实施例中,所述管理服务器还包括:
第三获取模块,配置为响应于辅助授权组件发送的用户信息获取请求,获取所请求的用户信息;
加密模块,配置为使用所述会话密钥对所述用户信息进行加密;
第六发送模块,配置为将经过加密的所述用户信息反馈至所述辅助授权组件。
第五方面,本公开实施例还提供了一种授权系统,包括:上述第三方面中任一实施例提供的辅助授权组件和上述第四方面中任一实施例提供的管理服务器。
第六方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上第一方面、第二方面中任一实施例提供所述的授权方法。
本公开实施例提供了一种授权方法、辅助授权组件、管理服务器和计算机可读介质,可实现用户能够将其在开源宿主应用中的部分或全部用户信息授权给开发者应用使用,以保障开发者应用的跨平台运行。
附图说明
附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其它特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例中跨平台授权的参与各方示意图;
图2为本公开实施例提供的一种授权方法的流程图;
图3为本公开实施例提供了另一种授权方法的流程图;
图4为本公开实施例提供了又一种授权方法的流程图;
图5为本公开实施例提供了再一种授权方法的流程图;
图6为本公开实施例提供的一种实现授权方法的信令交互图;
图7为本公开实施例提供的另一种实现授权方法的信令交互图;
图8为本公开实施例提供的一种辅助授权组件的结构框图;
图9为本公开实施例提供的一种管理服务器的结构框图。
具体实施方式
为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图对本发明提供的一种授权方法、辅助授权组件、管理服务器和计算机可读介质进行详细描述。
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
图1为本公开实施例中跨平台授权的参与各方示意图,如图1所示,跨平台授权过程的参与方包括:开发者应用、开源宿主应用和管理服务器。
其中,“开发者”是指基于开源开发平台开发应用(app,也可以为小程序miniprogram)的开发方,“开发者应用”是指开发方基于开源开发平台所开发出的应用,该应用可支持跨平台运行。以“百度智能小程序”平台为例,其为开源的小程序开发平台,为了打通其与其他各平台间壁垒,百度智能小程序完全开放,支持百度系应用(app)和外部app运行(例如,趣头条、快手等),实现了一次开发多端可运行。
“开源宿主应用”为能够承载开发者应用运行,作为开发者应用的宿主的本地应用(nativeapp,也称为第三方应用),例如手机百度app、wifi智能钥匙app。在本公开实施例中,开源宿主应用中不仅包含有支持本应用功能的开源宿主平台,还集成有辅助授权组件。对于辅助授权组件,将会在后续内容进行详细描述。
“管理服务器”为开源开发平台的后端服务器,其管理开源开发平台的账户体系,能够供开源宿主应用接入注册(使得该开源宿主应用集成有辅助授权组件,且能够承载基于开源开发平台开发出的开发者应用),也可以管理完成接入注册的各开源宿主应用的账户授权。此外,管理服务器也可以为没有自己独立账户体系的开源宿主应用共享自身的账户体系,即用户能够基于开源开发平台的账户来登录该开源宿主应用。
图2为本公开实施例提供的一种授权方法的流程图,如图2所示,该授权方法用于实现用户能够将其在开源宿主应用中的部分或全部用户信息授权给开发者应用使用。该授权方法的执行主体为辅助授权组件,该辅助授权组件集成于开源宿主应用内,该授权方法包括:
步骤s101、响应于开发者应用发送的登录请求,获取用户的登录授权信息。
在本公开实施例中,不同的开源宿主应用中均集成有相同的辅助授权组件。开发者应用发送的登录请求中包含有待访问的开源宿主应用的宿主标识、请求用户授权的授权项目(例如,用户头像、用户帐号、用户手机号、用户业务数据等)。其中,基于宿主标识可使得辅助授权组件确定用户待登录的开源宿主平台是否为与其属于同一开源宿主应用的开源宿主平台平台。若否,则直接相开发者应用反馈登录请求失败;若是,则提供预先设计的登录界面供用户输入登录帐号、密码/验证码等登录信息,以及提供授权界面,供用户确认是否授权登录请求中各授权项目给开发者应用。其中,若用户拒绝授权,则向开发者应用反馈用户拒绝授权的信息;若用户同意授权,则获取用户输入的登录信息以及确认授权的相关授权信息,以作为用户的登录授权信息,此后执行步骤s102。
步骤s102、向开源宿主应用的账户管理方发送登录授权请求。
在一些实施例中,在步骤s102之前还包括:根据宿主标识确定开源宿主应用的账户管理方的步骤。在本公开实施例中,开源宿主应用的账户体系有两种情况:其一,开源宿主应用使用自己独立的账户体系,此时开源宿主应用的账户管理方为开源宿主应用内的开源宿主平台,辅助授权组件向开源宿主应用内的开源宿主平台发送登录授权请求;其二,开源宿主应用共享使用开源开发平台的账户体系,此时开源宿主应用的账户管理方为管理服务器,辅助授权组件向管理服务器发送登录授权请求。
辅助授权组件向开源宿主应用的账户管理方发送登录授权请求,以供账户管理方对登录授权请求中所包含的登录授权信息进行验证。具体地,账户管理方验证用户输入的登录信息是否正确,以及验证用户确认授权的授权项目是否在该用户的权限范围内;若用户输入的登录信息正确且确认授权的授权项目在其权限范围内,则表示登录授权信息验证通过,账户管理方生成授权码,并向辅助授权组件发送授权成功信息,其中授权成功信息包括授权码,此后执行步骤s103;反之,则表示登录授权信息验证不通过,账户管理方向辅助授权组件反馈授权失败信息,辅助授权组件将授权失败信息展示给用户。
其中,授权码为用户授权的标识。在用户完成对应用的授权且授权验证通过后,账户管理方会生成一个很短时间(例如,10分钟)内有效的授权标识,且该授权码具有有效使用次数,一般为1次。需要说明的是,根据授权码生成对应的会话密钥的过程为本领域的常规技术,此处不进行详细描述。
步骤s103、在登录授权信息验证通过后,接收账户管理方反馈的授权成功信息。
在步骤s103中,辅助授权组件接收账户管理方反馈授权成功信息,该授权成功信息中包含有授权码。
当账户管理方为管理服务器时,授权成功信息中还包括有表征用户登录成功的标识,其为采用用户标识(字段名一般为uid)、开源宿主标识(字段名一般为host_id)、当前时间(字段名一般为current_time)等维度的一种用户身份的标识。
步骤s104、将授权码发送至开发者应用,以供开发者应用向管理服务器换取授权码所对应的会话密钥。
在步骤s104中,辅助授权组件将授权码(code)发送至开发者应用,开发者应用向管理服务器发送密钥获取请求,以请求换取授权码所对应的会话密钥(sessionkey)。其中,密钥获取请求包括:授权码、应用标识(开发者应用的应用名称,字段名一般为client_id)和应用密钥(开发者应用的密钥,字段名一般为secret_key)。管理服务器会根据授权码的格式,来确定该授权码为其自身所生成还是为其他第三方的开源宿主平台所生成。
若授权码为管理服务器自身所生成,则管理服务器对该授权码的有效性进行验证,并在有效性通过后生成于该授权码所对应的会话密钥,并向开发者应用反馈一段json文本,包含用户身份标识(字段名一般为openid,由开发者应用标识appid和用户标识uid生成)和会话密钥(字段名一般为session_key);若授权码的有效性验证失败,则管理服务器向开发者应用反馈另一段json文本,包含错误码(字段名一般为error)和错误描述信息(字段名一般为error_description)。
若授权码为其他第三方的开源宿主平台所生成,则管理服务器将密钥获取请求转发至该开源宿主平台,开源宿主平台对授权码的有效性进行验证,并在有效性通过后生成于该授权码所对应的会话密钥,并向管理服务器反馈一段json文本,包含用户身份标识和会话密钥;若授权码的有效性验证失败,则开源宿主平台向管理服务器反馈另一段json文本,包含错误码和错误描述信息。管理服务器将接受到的json文本转发至开发者应用。
在开发者应用获取到会话密钥后,即表示用户授权成功。本公开实施例提供了一种授权方法,可实现用户对开发者应用的跨平台授权。
图3为本公开实施例提供了另一种授权方法的流程图,如图3所示,与图1所示实施例不同的是,图3所示授权方法不但包括上述步骤s101~步骤s104,在步骤s104之后还包括步骤s105和步骤s106。下面仅对步骤s105和步骤s106进行详细描述。
步骤s105、响应于开发者应用发送的用户信息获取请求,将用户信息请求转发至账户管理方。
开发者应用向辅助授权组件发送用户信息获取请求,用户信息获取请求包含有开发者应用的应用标识、获得授权的用户的用户标识以及开发者应用所请求的该用户的用户信息(例如,用户头像、用户帐号、用户手机号、用户业务数据等)。辅助授权组件将该用户信息获取请求发送至开源宿主应用的账户管理方,账户管理方从自身数据库中确定出用户信息获取请求所请求的用户信息,并利用该用户的会话密钥来对确定出的用户信息进行加密,且将加密后的用户信息反馈给辅助授权组件。
步骤s106、接收账户管理方反馈的经过加密的用户信息,并将用户信息转发至开发者应用,以供开发者应用基于会话密钥对用户信息进行解密。
辅助授权组件接收账户管理方反馈的经过加密的用户信息,并将该用户信息转发给开发者应用,开发者应用基于之前获取到的会话密钥来对接收到的用户信息进行解密,以获得用户信息明文。
图4为本公开实施例提供了又一种授权方法的流程图,如图4所示,该授权方法的执行主体为管理服务器,该授权方法包括:
步骤s201、响应于接收开发者应用发送的密钥获取请求,根据密钥获取请求中的授权码获取对应的会话密钥。
开发者应用获取到授权码后,向管理服务器发送密钥获取请求,密钥获取请求包括:授权码、应用标识和应用密钥。管理服务器会根据授权码的格式,来确定该授权码为其自身所生成还是为其他第三方的开源宿主平台所生成。若授权码为管理服务器自身所生成,则管理服务器自身生成对应该授权码获取对应的会话密钥;若授权码为其他第三方的开源宿主平台所生成,则管理服务器将密钥获取请求转发至该开源宿主平台,开源宿主平台生成该授权码对应的会话密钥,并将该会话密钥反馈给管理服务器,管理服务器接收第三方的开源宿主平台反馈的会话密钥。
步骤s202、将会话密钥反馈至开发者应用。
在管理服务器获取到授权码所对应的会话密钥后,将会话密钥反馈至开发者应用。
图5为本公开实施例提供了再一种授权方法的流程图,如图5所示,在本实施例中,开源宿主应用没有自身独立账户体系,使得是开源开发平台的账户体系,即管理服务器为该开源宿主应用共享自身的账户体系。与图4所示实施例不同的是,该授权方法不但包括上述步骤s201和步骤s202,还在步骤s201之前包括步骤s200a和步骤s200b,在步骤s202之后包括步骤s203、步骤s204和步骤s205。
步骤s200a、响应于辅助授权组件发送的登录授权请求,对登录授权请求中的登录授权信息进行验证。
步骤s200b、在登录授权信息验证通过后,向辅助授权组件反馈授权成功信息,登录及授权成功信息包括:授权码。
步骤s201、响应于接收开发者应用发送的密钥获取请求,根据密钥获取请求中的授权码获取对应的会话密钥。
步骤s202、将会话密钥反馈至开发者应用。
步骤s203、响应于辅助授权组件发送的用户信息获取请求,获取所请求的用户信息。
步骤s204、使用会话密钥对用户信息进行加密。
步骤s205、将经过加密的用户信息反馈至辅助授权组件。
对于上述各步骤的具体描述,可参见前述实施例中相应内容,此处不再赘述。
图6为本公开实施例提供的一种实现授权方法的信令交互图,如图6所示,参与方包括:开发者应用、开源宿主应用和管理服务器;其中,开发者应用包括:开发者程序前端和开发者程序后端,开源宿主应用包括:辅助授权组件和开源宿主平台,开源宿主应用有自身独立账户体系,即开源宿主应用的账户管理方为开源宿主平台;该授权方法包括:
bz101、开发者程序前端向辅助授权组件发送登录请求。
bz102、辅助授权组件引导用户登录、授权,获取用户的登录授权信息。
bz103、辅助授权组件向开源宿主平台发送登录授权请求,登录授权请求包括登录授权信息。
bz104、在登录授权信息验证通过后,开源宿主平台向辅助授权组件发送授权成功信息,授权成功信息包括授权码。
bz105、辅助授权组件将授权码转发给开发者程序前端。
bz106、开发者程序前端将授权码转发给开发者程序后端。
bz107、开发者程序后端向管理服务器发送密钥获取请求,密钥获取请求包括授权码。
bz108、管理服务器将授权码分发给开源宿主平台。
bz109、开源宿主平台生成授权码所对应的会话密钥,并将会话密钥发送给管理服务器。
bz110、管理服务器将会话密钥转发给开发者程序后端。
bz111、开发者程序前端向辅助授权组件发送用户信息获取请求。
bz112、辅助授权组件将用户信息获取请求转发至开源宿主平台。
bz113、开源宿主平台向辅助授权组件反馈经过加密的用户信息。
bz114、辅助授权组件将用户信息转发给开发者程序前端。
bz115、开发者程序前端将用户信息转发给开发者程序后端。
bz116、开发者程序后端使用会话密钥对用户信息进行解密。
图7为本公开实施例提供的另一种实现授权方法的信令交互图,如图7所示,参与方包括:开发者应用、开源宿主应用和管理服务器;其中,开发者应用包括:开发者程序前端和开发者程序后端,开源宿主应用包括:辅助授权组件和开源宿主平台,开源宿主应用没有自身独立账户体系,使用开源开发平台的账户管理体现,即开源宿主应用的账户管理方为管理服务器;该授权方法包括:
bz201、开发者程序前端向辅助授权组件发送登录请求。
bz202、辅助授权组件引导用户登录、授权,获取用户的登录授权信息。
bz203、辅助授权组件向管理服务器发送登录授权请求,登录授权请求包括登录授权信息。
bz204、在登录授权信息验证通过后,管理服务器向辅助授权组件发送授权成功信息,授权成功信息包括授权码。
bz205、辅助授权组件将授权码转发给开发者程序前端。
bz206、开发者程序前端将授权码转发给开发者程序后端。
bz207、开发者程序后端向管理服务器发送密钥获取请求,密钥获取请求包括授权码。
bz208、管理服务器生成授权码所对应的会话密钥。
bz209、管理服务器将会话密钥发送给开发者程序后端。
bz210、开发者程序前端向辅助授权组件发送用户信息获取请求。
bz211、辅助授权组件将用户信息获取请求转发至管理服务器。
bz212、管理服务器向辅助授权组件反馈经过加密的用户信息。
bz213、辅助授权组件将用户信息转发给开发者程序前端。
bz214、开发者程序前端将用户信息转发给开发者程序后端。
bz215、开发者程序后端使用会话密钥对用户信息进行解密。
图8为本公开实施例提供的一种辅助授权组件的结构框图,如图8所示,该辅助授权组件能够执行前述图2和图3所示实施例中的授权方法,该辅助授权组件集成于开源宿主应用内,辅助授权组件包括:第一获取模块101、第一发送模块102、第一接收模块103和第二发送模块104。
其中,第一获取模块101配置为响应于开发者应用发送的登录请求,获取用户的登录授权信息。
第一发送模块102配置为向开源宿主应用的账户管理方发送登录授权请求,登录授权请求包括:登录授权信息。
第一接收模块103配置为在登录授权信息验证通过后,接收账户管理方反馈的授权成功信息,登录及授权成功信息包括:授权码。
第二发送模块104配置为将授权码发送至开发者应用,以供开发者应用向管理服务器换取授权码所对应的会话密钥。
在一些实施例中,该辅助授权组件还包括:第三发送模块105和第二接收模块106。
其中,第三发送模块105配置为响应于开发者应用发送的用户信息获取请求,将用户信息请求转发至账户管理方。
第二接收模块106配置为接收账户管理方反馈的经过加密的用户信息,并将用户信息转发至开发者应用,以供开发者应用基于会话密钥对用户信息进行解密。
在一些实施例中,登录请求包括:开源宿主应用的宿主标识;辅助授权组件还包括:确定模块;确定模块配置为根据宿主标识确定开源宿主应用的账户管理方。
在一些实施例中,账户管理方包括:管理服务器或开源宿主应用内的开源宿主平台。
对于上述各模块以及各模块之间交互的具体描述,可参见前述实施例中相应内容,此处不再赘述。
图9为本公开实施例提供的一种管理服务器的结构框图,如图9所示,该管理服务器能够执行前述图4和图5所示实施例中的授权方法,该管理服务器包括:第二获取模块201和第四发送模块202。
其中,第二获取模块201配置为响应于开发者应用发送的密钥获取请求,根据密钥获取请求中的授权码获取对应的会话密钥。
第四发送模块202配置为将会话密钥反馈至接收开发者。
在一些实施例中,第二获取模块201包括:确定单元、生成单元、发送单元和接收单元。
其中,确定单元配置为确定授权码所对应用户的账户管理方。
生成单元配置为若账户管理方为管理服务器,则生成授权码所对应的会话密钥。
发送单元配置为若账户管理方法为第三方开源宿主平台,则将密钥获取请求转发至第三方开源宿主平台,以供第三方开源宿主平台生成授权码所对应的会话密钥。
接收单元配置为接收第三方开源宿主平台反馈的会话密钥。
在一些实施例中,管理服务器还包括:验证模块200a和第五发送模块200b。
其中,验证模块200a配置为响应于辅助授权组件发送的登录授权请求,对登录授权请求中的登录授权信息进行验证。
第五发送模块200b配置为在登录授权信息验证通过后,向辅助授权组件反馈授权成功信息,登录及授权成功信息包括:授权码。
在一些实施例中,管理服务器还包括:第三获取模块203、加密模块204和第六发送模块205。
其中,第三获取模块203配置为响应于辅助授权组件发送的用户信息获取请求,获取所请求的用户信息。
加密模块204配置为使用会话密钥对用户信息进行加密。
第六发送模块205配置为将经过加密的用户信息反馈至辅助授权组件。
对于上述各模块以及各模块之间交互的具体描述,可参见前述实施例中相应内容,此处不再赘述。
本公开实施例还提供了一种授权系统,包括:上述实施例提供的辅助授权组件和上述实施例提供的管理服务器。
本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现上述实施例所提供的授权方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其它存储器技术、cd-rom、数字多功能盘(dvd)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其它实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
1.一种授权方法,其特征在于,应用于辅助授权组件,所述辅助授权组件集成于开源宿主应用内,所述授权方法包括:
响应于开发者应用发送的登录请求,获取用户的登录授权信息;
向所述开源宿主应用的账户管理方发送登录授权请求,所述登录授权请求包括:所述登录授权信息;
在所述登录授权信息验证通过后,接收所述账户管理方反馈的授权成功信息,所述登录及授权成功信息包括:授权码;
将所述授权码发送至所述开发者应用,以供开发者应用向管理服务器换取所述授权码所对应的会话密钥。
2.根据权利要求1所述的授权方法,其特征在于,在所述将所述授权码发送至所述开发者应用的步骤之后,还包括:
响应于所述开发者应用发送的用户信息获取请求,将所述用户信息请求转发至所述账户管理方;
接收所述账户管理方反馈的经过加密的用户信息,并将所述用户信息转发至所述开发者应用,以供所述开发者应用基于所述会话密钥对所述用户信息进行解密。
3.根据权利要求1所述的授权方法,其特征在于,所述登录请求包括:所述开源宿主应用的宿主标识;
在所述获取用户的登录授权信息的步骤之后,且在所述向所述开源宿主应用的账户管理方发送登录授权请求的步骤之前,还包括:
根据所述宿主标识确定所述开源宿主应用的账户管理方。
4.根据权利要求1-3中任一所述的授权方法,其特征在于,所述账户管理方包括:所述管理服务器或所述开源宿主应用内的开源宿主平台。
5.一种授权方法,其特征在于,应用于管理服务器,所述授权方法包括:
响应于接收开发者应用发送的密钥获取请求,根据所述密钥获取请求中的授权码获取对应的会话密钥;
将所述会话密钥反馈至所述开发者应用。
6.根据权要求5所述的授权方法,其特征在于,所述根据所述授权码获取对应的会话密钥的步骤包括:
确定所述授权码所对应用户的账户管理方;
若所述账户管理方为所述服务器,则生成所述授权码所对应的会话密钥;
若所述账户管理方法为第三方开源宿主平台,则将所述密钥获取请求转发至所述第三方开源宿主平台,以供所述第三方开源宿主平台生成所述授权码所对应的会话密钥;
接收所述第三方开源宿主平台反馈的所述会话密钥。
7.根据权利要求5所述的授权方法,其特征在于,在所述接收开发者应用发送的密钥获取请求步骤之前,还包括:
响应于辅助授权组件发送的登录授权请求,对所述登录授权请求中的登录授权信息进行验证;
在所述登录授权信息验证通过后,向所述辅助授权组件反馈授权成功信息,所述登录及授权成功信息包括:所述授权码。
8.根据权利要求5所述的授权方法,其特征在于,在所述将所述会话密钥反馈至所述接收开发者的步骤之后,还包括:
响应于辅助授权组件发送的用户信息获取请求,获取所请求的用户信息;
使用所述会话密钥对所述用户信息进行加密;
将经过加密的所述用户信息反馈至所述辅助授权组件。
9.一种辅助授权组件,其特征在于,所述辅助授权组件集成于开源宿主应用内,所述辅助授权组件包括:
第一获取模块,配置为响应于开发者应用发送的登录请求,获取用户的登录授权信息;
第一发送模块,配置为向所述开源宿主应用的账户管理方发送登录授权请求,所述登录授权请求包括:所述登录授权信息;
第一接收模块,配置为在所述登录授权信息验证通过后,接收所述账户管理方反馈的授权成功信息,所述登录及授权成功信息包括:授权码;
第二发送模块,配置为将所述授权码发送至所述开发者应用,以供开发者应用向管理服务器换取所述授权码所对应的会话密钥。
10.根据权利要求9所述的辅助授权组件,其特征在于,还包括:
第三发送模块,配置为响应于所述开发者应用发送的用户信息获取请求,将所述用户信息请求转发至所述账户管理方;
第二接收模块,配置为接收所述账户管理方反馈的经过加密的用户信息,并将所述用户信息转发至所述开发者应用,以供所述开发者应用基于所述会话密钥对所述用户信息进行解密。
11.根据权利要求9所述的辅助授权组件,其特征在于,所述登录请求包括:所述开源宿主应用的宿主标识;
所述辅助授权组件还包括:
确定模块,配置为根据所述宿主标识确定所述开源宿主应用的账户管理方。
12.根据权利要求9-11中任一所述的辅助授权组件,其特征在于,所述账户管理方包括:所述管理服务器或所述开源宿主应用内的开源宿主平台。
13.一种管理服务器,其特征在于,包括:
第二获取模块,配置为响应于开发者应用发送的密钥获取请求,根据所述密钥获取请求中的授权码获取对应的会话密钥;
第四发送模块,配置为将所述会话密钥反馈至所述接收开发者。
14.根据权要求13所述的管理服务器,其特征在于,所述第二获取模块包括:
确定单元,配置为确定所述授权码所对应用户的账户管理方;
生成单元,配置为若所述账户管理方为所述服务器,则生成所述授权码所对应的会话密钥;
发送单元,配置为若所述账户管理方法为第三方开源宿主平台,则将所述密钥获取请求转发至所述第三方开源宿主平台,以供所述第三方开源宿主平台生成所述授权码所对应的会话密钥;
接收单元,配置为接收所述第三方开源宿主平台反馈的所述会话密钥。
15.根据权利要求13所述的管理服务器,其特征在于,还包括:
验证模块,配置为响应于辅助授权组件发送的登录授权请求,对所述登录授权请求中的登录授权信息进行验证;
第五发送模块,配置为在所述登录授权信息验证通过后,向所述辅助授权组件反馈授权成功信息,所述登录及授权成功信息包括:所述授权码。
16.根据权利要求13所述的管理服务器,其特征在于,还包括:
第三获取模块,配置为响应于辅助授权组件发送的用户信息获取请求,获取所请求的用户信息;
加密模块,配置为使用所述会话密钥对所述用户信息进行加密;
第六发送模块,配置为将经过加密的所述用户信息反馈至所述辅助授权组件。
17.一种授权系统,其特征在于,包括:如上述权利要求9-12中任一所述的辅助授权组件和如上述权利要求13-16中任一所述的管理服务器。
18.一种计算机可读介质,其特征在于,其上存储有计算机程序,所述程序被处理器执行时实现权利要求1-8中任一所述的授权方法。
技术总结