一种登录方法、装置及开放平台系统的制作方法

文档序号:7986545阅读:99来源:国知局
一种登录方法、装置及开放平台系统的制作方法
【专利摘要】本发明适用于网络通信领域,提供了一种登录方法、装置及开放平台系统,所述方法包括:接收登录平台对用户验证授权后提供的访问令牌参数Access?Token;利用所述接收到的访问令牌参数获取用户的开放数字身份标识OpenID;根据第三方页面的浏览器环境生成对应的命令字,将所述命令字回传给第三方页面;所述命令字中包含有用户的访问令牌参数和开放数字身份标识。在本发明中,登录平台向第三方页面提供统一回调地址页,第三方页面不需要开发免回调地址页就可以接入开放平台,降低了第三方页面的开发成本,提供完整的登录及openAPI调用JS接口,支持自动更新,不需要第三方页面调整就能自动应用最新版的JS?SDK,可工作在各种智能终端上。
【专利说明】一种登录方法、装置及开放平台系统
【技术领域】
[0001]本发明属于网络通信领域,尤其涉一种登录方法、装置及开放平台系统。
【背景技术】
[0002]用户可以通过QQ空间、人人网、开心网、新浪微博、搜狐微博、腾讯微博、淘宝、豆瓣、MSN、Google等账号登录第三方页面。这一登录方法对第三方页面而言,可让自身站点得到更有效的推广;对用户而言,省去了注册账号的操作成本,以及后续记忆各网站账号、密码的成本;对QQ空间等开放平台而言,可以通过中小网站汲取丰富的优质内容。
[0003]目前,各大网站提供的登录大多直接提供Andriod、IOS软件开发工具包(Software Development Kit, SDK)等,网站开发的成本相对来说较高。而在智能终端的应用中,很多网站不提供Web方式访问的回调地址,通常会在SDK中向回调地址页跳转时指定一个伪协议,并在跳转到该页面时终止http请求,直接截取地址中的访问令牌(AccessToken)参数。
[0004]部分网站提供的登录可以免回调地址页,例如新浪微博,支持免回调地址页的一种方式,如图1所示,实现流程如下:
[0005]1、第三方页面的登录按钮触发事件,通过浏览器的消息传输方法postMessage传递到与登录平台同域名的平台后台服务;
[0006]2、平台后台服务打开新的平台登录页窗口,用户完成登录流程;
[0007]3、平台登录页跳转到对第三方透明的平台跨域代理页,向平台跨域代理页传回access Token等相关信息;
[0008]4、平台跨域代理页将Access Token等相关信息传递给平台后台服务;
[0009]5、平台后台服务通过浏览器将消息传递回第三方页面,并通知登录成功。
[0010]在上述现在流程中,第三方页面、平台后台服务以及登录平台三者不一定是同域名,即整个流程不一定在一个事件流中触发。由于同源策略限制问题,当第三方页面与登录平台异域名时,无法在第三方与平台之间直接通信,部分平台有过一些跨域通信的实现,但是会在开始步骤被浏览器拦截打开的登录页面,实现机制不够完善。且部分主流社会性网络服务(Social Networking Services, SNS)媒体网站提供的 JS SDK (JavaScript SDK)没有提供直接调用openAPI的支持,大多数提供的JS SDK在智能终端等环境下也不可用,给第三方页面的开发带来很大不便。

【发明内容】

[0011]本发明实施例提供一种登录方法,旨在解决登录时需要通过代理页平台回调地址,给第三方页面的开发带来很大不便的问题。
[0012]本发明实施例是这样实现的,一种登录方法,所述方法包括下述步骤:
[0013]接收登录平台对用户验证授权后提供的访问令牌参数Access Token ;
[0014]利用所述接收到的访问令牌参数获取用户的开放数字身份标识OpenID ;[0015]根据第三方页面的浏览器环境生成对应的命令字,将所述命令字回传给第三方页面;
[0016]所述命令字中包含有用户的访问令牌参数和开放数字身份标识。
[0017]本发明实施例还提供一种登录装置,所述装置包括:
[0018]访问令牌参数接收单元,用于接收登录平台对用户验证授权后提供的访问令牌参数 Access Token ;
[0019]开放数字身份标识获取单元,用于利用所述接收到的访问令牌参数获取用户的开放数字身份标识OpenID ;以及
[0020]命令字回传单元,用于根据第三方页面的浏览器环境生成对应的命令字,将所述命令字回传给第三方页面;
[0021]所述命令字中包含有用户的访问令牌参数和开放数字身份标识。
[0022]本发明实施例还提供一种开放平台系统,所述开放平台系统包括所述登录装置。
[0023]在本发明实施例中,登录平台向第三方页面提供统一回调地址页,第三方页面不需要开发免回调地址页就可以接入开放平台,降低了第三方页面的开发成本,提供完整的登录及openAPI调用JS接口,支持自动更新,不需要第三方页面调整就能自动应用最新版的JS SDK,可工作在各种智能终端上。
【专利附图】

【附图说明】
[0024]图1是现有技术的提供的免回调地址页登录的实现流程图;
[0025]图2是本发明实施例提供的登录方法的实现流程图;
[0026]图3是本发明实施例提供的回传命令字的实现流程图;
[0027]图4是本发明实施例提供的免回调地址页登录的实现流程图;
[0028]图5是本发明实施例提供的登录装置的结构图。
【具体实施方式】
[0029]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0030]在本发明实施例中,登录平台向第三方页面提供统一的回调地址页,第三方页面不需要开发免回调地址页就可以接入开放平台,降低了第三方页面的开发成本。
[0031]图2示出了本发明实施例提供的登录方法的实现流程图,详述如下:
[0032]在步骤S201中,接收登录平台对用户验证授权后提供的Access Token参数;
[0033]在步骤S202中,利用接收到的Access Token参数获取用户的OpenID ;
[0034]在本发明实施例中,开放数字身份标识(OpenID)是一种用于以用户为中心的数字身份的分散的开放式免费框架。
[0035]在OpenID中,用户(EndUser)使用OpenID标识符作为网络通行证,OpenID依赖方(RP)是一种在线资源,使用OpenID识别可以访问它的对象。OpenID提供者(OP)是一个站点,用户可在该站点声明OpenID,随后登录并为任意RP验证身份。
[0036]RP通常由用户提供的标识符呈现,该标识符被规范化为声明的标识符。用户的浏览器将被重定向到0P,这样用户便可以提供其密码并得到身份验证。如果验证成功,用户代理会被转发到用户正试图访问的安全资源中。如果用户得不到验证,RP会拒绝任何访问。
[0037]OP负责发出标识符并执行用户身份验证。OP收集并保留每个用户的一些基本信息。当要求OP验证声明的标识符时,用户的浏览器直接转到登录页面,用户在该页面输入其密码,如果用户成功得到身份验证,OP会将浏览器转到RP指定的位置。如果用户不能进行身份验证,可能会收到来自OP的消息,指出身份验证失败。
[0038]作为本发明的一个实施例,还需检测平台用户在访问第三方页面的浏览器环境。
[0039]在本发明实施例中,可以通过检测浏览器IE的版本信息来确定第三方页面的浏览器环境,还可以通过其他的方式来确定第三方页面的浏览器环境。第三方页面的浏览器环境通过IE的版本信息来确定时,可以分为高版本浏览器环境,例如IE8、IE9等,和低版本浏览器环境,例如IE6、IE7等。
[0040]在步骤S203中,根据第三方页面的浏览器环境生成对应的命令字,将命令字回传
给第三方页面。
[0041]在本发明实施例中,命令字中包含有用户的Access Token和OpenID。
[0042]在本发明实施例中,命令字的示例格式如下:
[0043]invokeiiiQC.Login._onLoginBack#0penID,Access Token。
[0044]作为本发明的一个实施例,在不同的浏览器环境下,命令字回传的方式不同。本发明实施例中通过第三方页面的浏览器支持的回传方式将命令字回传给第三方页面。
[0045]在本发明实施例中,通过第三方页面的浏览器支持的回传方式将命令字回传给第三方页面的步骤具体,如图3所示,详述如下:
[0046]在步骤S301中,检测打开页opener是否支持浏览器的postMessage,是则执行步骤S302,否则执行步骤S303 ;
[0047]在步骤S302中,采用opener.postMessage回传命令字;
[0048]在步骤S303中,检测Flash的本地连接(Local Connect ion )是否连接好(ready ),是则执行步骤S304,否则执行步骤S305 ;
[0049]在步骤S304中,采用Flash回传命令字;
[0050]在步骤S305中,根据检测到的浏览器情况提示用户进行相应的操作。
[0051]例如,当检测到用户没有安装Flash插件时,提示用户安装Flash插件。
[0052]在本发明实施例中,IE的高版本浏览器环境有保护模式,在保护模式下浏览器被默认限制为互相不可访问。此时,需要采用Flash回传命令字。
[0053]在本发明实施例中,opener即谁打开我的,例如A页面利用window, open弹出了 B页面窗口,那么A页面所在窗口就是B页面的opener,在B页面通过opener对象可以访问A页面。
[0054]作为本发明的一个实施例,还可以通过检测Flash的本地连接(LocalConnection)是否连接好(ready),是则采用Flash将命令字回传给第三方页面。
[0055]图4示出了本发明实施例提供的免回调地址页登录的实现流程,详述如下:
[0056]1、第三方页面的登录按钮触发事件,通过浏览器的postMessage传递到平台登录页;
[0057]2、平台登录页跳转到平台授权页,平台授权页验证用户信息;[0058]3、平台授权页验证用户信息后,平台后台服务携带Access Token参数跳转页面到的通用回调地址页;
[0059]4、通用回调地址页接收平台后台服务提供的Access Token参数,利用接收到的Access Token参数获取用户的OpenID,检测平台用户在访问第三方页面的浏览器环境,根据第三方页面的浏览器环境生成对应的命令字,并通过第三方页面的浏览器支持的回传方式将命令字回传给第三方页面;
[0060]5、第三方页面的opener接收回传的命令字后,对命令字进行解析,触发opener页接收到回传信息的事件,该触发事件的默认行为是更新“登录”按钮为“登录后”的状态。
[0061]图4中的虚线部分,位于登录平台中。第三方页面进行登录时,由登录平台提供统一的回调地址页,不再依赖平台后台服务以及平台跨域代理页。
[0062]图5示出了本发明实施例提供的登录装置的结构,为了方便描述,仅示出了与本发明实施例相关的部分。
[0063]该登录装置可以广泛应用于各开放平台系统中,第三方页面不需要开发免回调地址页就可以接入开放平台。
[0064]作为本发明的一个实施例,该登录装置包括访问令牌参数接收单元51、开放数字身份标识获取单元52、浏览器环境检测单元53,以及命令字回传单元54。其中:
[0065]访问令牌参数接收单元51接收登录平台对用户验证授权后提供的Access Token参数。
[0066]开放数字身份标识获取单元52利用访问令牌参数接收单元51接收到的AccessToken参数获取用户的OpenID。
[0067]浏览器环境检测单元53检测平台用户在访问第三方页面的浏览器环境。
[0068]命令字回传单元54根据浏览器环境检测单元53检测的第三方页面的浏览器环境生成对应的命令字,将该命令字回传给第三方页面。
[0069]在本发明的实施例中,命令字中包含有用户的Access Token和OpenID。
[0070]作为本发明的一个实施例,在不同的浏览器环境下,命令字回传的方式不同。本发明实施例中通过第三方页面的浏览器支持的回传方式将命令字回传给第三方页面。
[0071]作为本发明的一个实施例,通过第三方页面的浏览器支持的回传方式将命令字回传给第三方页面,如果打开页opener支持浏览器的postMessage,命令字回传单元54采用opener.postMessage将命令字回传给第三方页面,如果打开页opener不支持浏览器的postmessage,命令字回传单元54采用Flash将命令字回传给第三方页面。
[0072]作为本发明的一个实施例,通过第三方页面的浏览器支持的回传方式将命令字回传给第三方页面,命令字回传单元54采用Flash将命令字回传给第三方页面。
[0073]在本发明实施例中,登录平台向第三方页面提供统一回调地址页,第三方页面不需要开发免回调地址页就可以接入开放平台,降低了第三方页面的开发成本,提供完整的登录及openAPI调用JS接口,支持自动更新,不需要第三方页面调整就能自动应用最新版的JS SDK,可工作在各种智能终端上。
[0074]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种登录方法,其特征在于,所述方法包括下述步骤: 接收登录平台对用户验证授权后提供的访问令牌参数Access Token ; 利用所述接收到的访问令牌参数获取用户的开放数字身份标识OpenID ; 根据第三方页面的浏览器环境生成对应的命令字,将所述命令字回传给第三方页面; 所述命令字中包含有用户的访问令牌参数和开放数字身份标识。
2.如权利要求1所述的方法,其特征在于,在所述根据第三方页面的浏览器环境生成对应的命令字,将所述命令字回传给第三方页面步骤之前,所述方法还包括: 检测平台用户在访问第三方页面的浏览器环境。
3.如权利要求1所述的方法,其特征在于,通过第三方页面的浏览器支持的回传方式将所述命令字回传给第三方页面。
4.如权利要求3所述的方法,其特征在于,所述通过第三方页面的浏览器支持的回传方式将所述命令字回传给第三方页面的步骤包括: 如果打开页opener支持浏览器的消息传递方法,所述命令字回传单元采用opener.postMessage将所述命令字回传给第三方页面; 如果打开页opener不支持浏览器的消息传递方法,所述命令字回传单元采用Flash将所述命令字回传给第三方页面。
5.如权利要求3所述的方法,其特征在于,所述通过第三方页面的浏览器支持的回传方式将所述命令 字回传给第三方页面的步骤包括: 采用Flash将所述命令字回传给第三方页面。
6.一种登录装置,其特征在于,所述装置包括: 访问令牌参数接收单元,用于接收登录平台对用户验证授权后提供的访问令牌参数Access Token ; 开放数字身份标识获取单元,用于利用所述接收到的访问令牌参数获取用户的开放数字身份标识OpenID ;以及 命令字回传单元,用于根据第三方页面的浏览器环境生成对应的命令字,将所述命令字回传给第三方页面; 所述命令字中包含有用户的访问令牌参数和开放数字身份标识。
7.如权利要求6所述的装置,其特征在于,所述装置还包括: 浏览器环境检测单元,用于检测平台用户在访问第三方页面的浏览器环境。
8.如权利要求6所述的装置,其特征在于,所述命令字回传单元,用于通过第三方页面的浏览器支持的回传方式将所述命令字回传给第三方页面。
9.如权利要求8所述的装置,其特征在于,所述命令字回传单元,用于: 如果打开页opener支持浏览器的消息传递方法,采用opener.postMessage将所述命令字回传给第三方页面; 如果打开页opener不支持浏览器的消息传递方法,采用Flash将所述命令字回传给第三方页面。
10.如权利要求8所述的装置,其特征在于,所述命令字回传单元,用于: 采用Flash将所述命令字回传给第三方页面。
11.一种开放平台系统,其特征在于,所述开放平台系统包括权利要求6至10任一权利要求所述的 登录装置。
【文档编号】H04L29/06GK103856446SQ201210505082
【公开日】2014年6月11日 申请日期:2012年11月30日 优先权日:2012年11月30日
【发明者】曹瑾璟, 王明慧 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1