一种面向网页应用的单点登录方法、装置和系统的制作方法_2

文档序号:8415610阅读:来源:国知局
所述加密包括:利用预先与所述服务器约定的加密方式和密钥进行加密,或者将所述登录会话信息提供给所述服务器,并获取所述服务器返回的加密后的登录会话信息。
[0047]本发明还提供了一种面向网页应用的单点登录系统,该系统包括:
[0048]web页面上的执行模块,用于获取到触发登录的事件时,将当前web页面的URL地址发送给本地应用;
[0049]所述本地应用包括上述装置。
[0050]根据本发明一优选实施方式,该系统还包括:服务器,用于接收到浏览器的加载请求后,所述加载请求包含登录会话信息和所述web页面的URL地址,利用所述登录会话信息完成登录处理,并返回跳转至所述web页面的URL地址的响应给所述浏览器。
[0051]由以上技术方案可以看出,本发明能够实现当用户使用浏览器访问web页面而触发登录事件时,如果与该web页面属于同一登录系统的native app已经处于登录状态,则可以直接利用该native app的当前已登录用户的登录会话信息实现web页面的自动登录,无需用户手工输入登录信息,简化了用户操作,并且不会跳转至登录页面,节约了系统资源。
【【附图说明】】
[0052]图1为本发明实施例提供的单点登录方法的流程图;
[0053]图2为本发明实施例提供的单点登录系统示意图;
[0054]图3为本发明实施例提供的单点登录模块的结构图。
【【具体实施方式】】
[0055]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0056]本发明的核心思想在于,在web页面上的执行模块中预先配置本地应用的地址,当获取到触发登录的事件时,将当前web页面的URL地址发送给该本地应用,本地应用将当前登录用户的登录会话信息和web页面的URL地址发送给浏览器,由浏览器利用该登录会话信息和该web页面的URL地址进行自动登录。下面结合图1对本发明提供的方法进行详细描述。
[0057]图1为本发明实施例提供的单点登录方法的流程图,如图1中所示,该方法可以具体包括以下步骤:
[0058]在101中,native app安装于智能终端后向操作系统注册第一 URI (UniformResource Identifier,统一资源标识符)地址。
[0059]在本步骤中,支持单点登录的native app安装于智能终端后,可以通过appmanifest文件向操作系统注册该native app内置的单点登录模块的相关信息,该相关信息可以包括URI地址,即第一 URI地址,还可以包括执行代码信息,例如执行模块的代码类名、所属命名空间等。
[0060]在102中,web页面上的执行模块获取到触发登录的事件时,利用当前web页面的URL地址作为query参数和第一 URI地址作为路径生成第二 URI地址,并利用所述第二 URI地址发送加载请求。
[0061]当用户在web页面上进行操作产生触发登录的事件时,web页面上的执行模块(JS代码)利用当前web页面的URL地址和第一 URI地址生成第二 URI地址。具体地,可以将web页面的URL地址作为第二 URI地址的query参数,将第一 URI地址作为第二 URI地址的路径。例如,假设当前web页面的地址为http://m.baidu.com,第一 URI地址为intent://searchbox/sso,那么生成的第二 URI 地址为 intent://searchbox/sso ? u = http% 3a%2f % 2fm.baidu.com。
[0062]其中第一 URI地址可以是预先配置于执行模块中的,例如预先在JS代码中写入native app的第一 URI地址,通常该JS代码所在的web页面与该native app属于同一服务提供商的产品,即属于同一登录系统。例如在百度贴吧的web页面的JS代码中写入百度地图app的第一 URI地址。
[0063]然后利用所述第二 URI地址发送请求,即将web页面重定向至第二 URI地址上。
[0064]在103中,操作系统获取到加载请求后,调用注册所述第一 URI地址的nativeapp。
[0065]由于第二 URI地址的URI路径部分为第一 URI地址,因此当浏览器发送第二 URI地址的加载请求时,操作系统会截获该加载请求并将该第二 URI地址通过系统接口提供给注册第一 URI地址的native appD
[0066]在104中,native app从操作系统获取第二 URI地址,从中解析出web页面的URL地址。
[0067]由于第一 URI地址指向native app的单点登录模块,因此单点登录模块可以从操作系统获取第二 URI地址,从该第二 URI地址的query参数中解析出第一 URL地址。另外,单点登录模块还可以调用系统接口获取发送加载请求的浏览器的应用身份标识信息,例如应用包名、包签名等。
[0068]在105中,native app对获取的web页面的URL地址进行合法性验证,如果验证通过,则继续执行106。
[0069]可以预先在native app的配置信息中预设合法性验证所使用的验证标准信息,例如合法域名信息、合法的格式规则等。native app中的单点登录模块可以根据该验证标准信息对web页面的URL地址进行合法性验证,例如,验证该web页面的URL地址是否属于预设的合法域名,或者验证该web页面的URL地址的格式是否符合预设的格式规则,等等。如果验证未通过,即web页面的URL地址不合法,则native app可以不进行后续处理,优选地,可以返回错误提示,例如告知用户发生错误,或者告知用户该web页面的URL地址不合法。
[0070]通常会在native app中配置与自己属于同一服务提供商的域名作为合法域名,只有这些域名能够共享native app中的登录信息。
[0071]除此之外,也可以采用与服务器端交互的方式进行合法性验证,例如native app将该web页面的URL地址信息发送给验证服务器,由验证服务器对该web页面的URL地址进行合法性验证后,将验证结果返回给native app。
[0072]本步骤是为了增加安全性所执行的步骤,例如由于移动设备本身的屏幕大小限制,一般很难将当前加载的web页面的URL地址完整的展现给用户看,部分浏览器甚至不会主动展示web页面的URL地址,这就使得诸如钓鱼网站等非法网站有机可乘,当用户误入钓鱼网站时会被引导到一个伪造的登录页面,从而造成账号泄露。而本步骤中native app中的单点登录模块会对web页面的URL地址进行合法性验证,从而避免将用户的登录信息泄露给非法网站。但本步骤并不是本发明所必须的步骤,
[0073]在106中,native app判断当前是否处于登录状态,如果是,执行108 ;否则执行107。
[0074]在107中,引导用户完成登录操作,以获取登录会话信息,执行108。
[0075]如果当前处于未登录状态,则native app可以提供一个登录窗口给用户,引导用户登录,并将登录会话信息存储于该native app本地cookie中。
[0076]在108中,获取当前登录用户的登录会话信息。
[0077]native app的单点登录模块可以从该native app的cookie中获取当前登录用户的登录会话信息,该登录会话信息包括诸如账户名、密码等信息。
[0078]在109中,利用登录会话信息和web页面的URL地址生成新的URL地址,该新的URL地址与web页面的URL地址指向同一服务器,将该新的URL地址发送给浏览器。
[0079]在本步骤中,native app可以对登录会话信息进行加密,利用加密得到的登录会话信息生成新的URL地址,其中采用的加密方式和密钥预先与服务器端约定。或者,nativeapp也可以将登录会话信息提供给服务器端,由服务器端进行加密后返回给native app,然后native app利用加密后的登录会话信息生成新的URL地址。
[0080]在生成新的URL地址时,可以将web页面的URL地址作为回跳地址,将登录会话信息作为回跳地址的参数,该回跳地址就是生成的新的URL地址。
[0081]native app在将新的URL地址发送给浏览器时,可以利用104中从加载请求中获取的浏览器的应用身份标识信息。具体地,可以发起一个由操作系统定义的、由该应用身份标识信息所标识的浏览器支持的系统请求,该系统请求用于请求浏览器加载指定URL资源,即加载上述新的URL地址。
[0082]需要说明的是,native app可以依据获取的浏览器的应用身份标识信息,将新的URL地址发送给上述web页面所在的浏览器,也可以不指定具体的浏览器,利用该新的URL地址发送系统请求后,由操作系统调用任意的浏览器加载该新的URL地址。
[0083]在110中,浏览器发送针对新的URL
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1