首页> 中国专利> Android设备基于进程间通信的移动应用单点登录方法

Android设备基于进程间通信的移动应用单点登录方法

摘要

本发明公开了Android设备基于进程间通信的移动应用单点登录方法:1、启动一个单点移动应用时,通过进程间通信模块启动单点登录进程模块,并将当前进程绑定到单点登录进程模块;2、当前移动应用获取设备登录会话信息,若成功则启动当前移动应用的主界面;若失败进入3;3、进入单点登录界面进行登录认证:当前移动应用将账号信息发送到单点登录进程模块,单点登录进程模块连接后台服务器进行登录认证;4、单点登录进程模块将认证结果进行广播;5、当前移动应用接收认证广播,当认证通过后,单点登录进程模块保存设备登录会话信息并加密存储在本地文件系统中,当前移动应用关闭当前单点登录界面并启动自身主界面。简化单点登录系统的开发和使用。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-19

    授权

    授权

  • 2017-07-25

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20170405

    实质审查的生效

  • 2017-06-30

    公开

    公开

说明书

技术领域

本发明涉及Android设备基于进程间通信的移动应用单点登录方法。

背景技术

在企业内部的多个移动APP中,经常存在如下应用场景:同一移动设备上的多个移动APP具有相同的登录账号,使用后台的同一认证服务进行登录认证。现有设计中,通过单点登录技术来实现,其主要思路是:当用户第一次访问应用系统的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,返回给用户一个认证的凭据-ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。

但是,现有的单点登录技术主要是针对服务端的各个服务之间利用ticket进行身份鉴别的问题,无法解决在同一移动设备上ticket在多个移动应用之间分发的问题,同时也没有为单点登录的多个APP提供统一的登录界面。另外,也不能够处理一个APP退出登录后,与该APP共享会话信息的其他APP的状态问题。

发明内容

针对上述问题,本发明提供Android设备基于进程间通信的移动应用单点登录方法,为多个APP提供统一的登录界面、统一的会话信息管理、统一的状态信息维护,简化移动应用单点登录系统的开发和使用;进一步的,能够处理一个APP退出登录后,与该APP共享会话信息的其他APP的状态问题。

名词解释:

1、单点移动应用:指基于本发明提供的SSOFramework开发的,使用本发明提供的单点登录页面进行登录认证的移动应用,多个单点移动应用之间通过本发明提供的单点登录进程SSOService共享设备登录会话信息。

2、设备登录会话信息:设备登录认证成功后服务器返回给客户端的身份标识信息,用于客户端下一次与服务器的通信。包括:会话ID、设备ID、用户登录名等信息。

为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:

Android设备基于进程间通信的移动应用单点登录方法,包括如下步骤:

步骤1、当Android设备启动一个单点移动应用时,通过进程间通信模块启动单点登录进程模块,并将当前进程绑定到单点登录进程模块;

步骤2、当前移动应用从单点登录进程模块获取设备登录会话信息,若获取成功说明该设备已经登录成功,则直接启动当前移动应用的主界面;若获取失败说明该设备未进行单点登录,则进入步骤3;

步骤3、进入单点登录界面进行登录认证:当前移动应用将账号信息发送到单点登录进程模块,单点登录进程模块连接后台服务器进行登录认证;

步骤4、单点登录进程模块将认证结果进行广播;

步骤5、当前移动应用接收认证广播,当认证通过后,单点登录进程模块保存设备登录会话信息并加密存储在本地文件系统中,当前移动应用关闭当前单点登录界面并启动自身主界面。

优选,当单点移动应用注销时,包括如下步骤:

步骤a、通过进程间通信模块将注销命令和当前移动应用的packagename发送到单点登录进程模块;

步骤b、单点登录进程模块接收到注销命令后,删除内存中会话信息和存储在本地文件系统中的设备登录会话信息,同时发送单点登录注销广播,并异步连接后台服务器完成用户注销;

步骤c、单点移动应用接收到注销广播后,根据广播中携带的packagename信息,判断自己是否为当前移动应用:若是,则关闭自身页面并启动单点登录界面;否则,关闭自身页面。

优选,单点登录进程模块和单点登录界面均基于移动应用单点登录开发框架SSOFramework开发,SSOFramework包括进程间通信模块和页面跳转模块。

优选,当Android设备启动一个单点移动应用时:用户向进程间通信模块注入移动应用上下文信息Context;进程间通信模块根据Context启动单点登录进程模块;进程间通信模块将当前应用绑定到单点登录进程模块,并根据AIDL接口获取单点登录进程模块的实例信息;进程间通信模块根据单点登录进程模块的实例信息从单点登录进程模块中获取设备登录会话信息。

优选,单点登录进程模块的启动步骤包括:

1)首先检查本地是否存储有设备登录会话信息,若没有则直接启动,若有则进入步骤2);

2)检查设备登录会话信息是否有效,如果无效则直接启动,如果有效则进入步骤3);

3)将会话信息解密后存储在单点登录进程模块的内存中,单点登录进程完成启动。

本发明的有益效果是:

各单点移动应用(即单点登录APP)通过本发明提供的SSOFramework与同一单点登录进程SSOService通信,无需直接与后台认证服务器交互即可获取用户的设备登录会话信息;同时本发明提供了统一的单点登录界面、统一的注销管理机制,单点登录APP通过SSOFramework跳转到单点登录界面,无需自己实现登录和注销逻辑,简化了APP的开发流程,减低了APP的使用成本。

附图说明

图1是本发明Android设备基于进程间通信的移动应用单点登录方法的流程图;

图2是本发明SSOFramework进程间通信模块执行流程图;

图3是本发明SSOFramework执行流程图;

图4是本发明SSOService启动流程图;

图5是本发明单点登录APP注销流程图。

具体实施方式

下面结合附图和具体的实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

Android设备基于进程间通信的移动应用单点登录方法,如图1-5所示,本发明主要解决在同一Android移动设备上,具有相同账号的多个移动应用(APP)之间的单点登录问题,在多个APP之间实现一次登录、会话共享。具体包括如下步骤:

步骤1、当Android设备启动一个单点移动应用时,通过进程间通信模块启动单点登录进程模块,并将当前进程绑定到单点登录进程模块;

步骤2、当前移动应用从单点登录进程模块获取设备登录会话信息,若获取成功说明该设备已经登录成功,则直接启动当前移动应用的主界面;若获取失败说明该设备未进行单点登录,则进入步骤3;

步骤3、进入单点登录界面进行登录认证:当前移动应用将账号信息发送到单点登录进程模块,单点登录进程模块连接后台服务器进行登录认证;

步骤4、单点登录进程模块将认证结果进行广播;

步骤5、当前移动应用接收认证广播,当认证通过后,单点登录进程模块保存设备登录会话信息并加密存储在本地文件系统中,当前移动应用关闭当前单点登录界面并启动自身主界面。

当认证失败时,显示认证失败信息并返回到单点登录界面。

优选,单点登录进程模块和单点登录界面均基于移动应用单点登录开发框架SSOFramework开发,具体开发时,单点登录进程模块和单点登录界面由单点登录APP(SSOManagerAPP)提供,SSOManagerAPP基于SSOFramework开发,主要用到了SSOFramework的进程间通信模块和页面跳转模块。下面结合具体实施例进行详细描述。

本发明提供一个单点登录管理APP(简称:SSOManagerAPP)和一套移动应用单点登录开发框架(简称:SSOFramework),其中,SSOManagerAPP基于SSOFramework开发,提供单点登录界面和单点登录进程SSOService(即单点登录进程模块),SSOService和SSOManagerAPP属于不同的进程。登录成功后将用户的会话信息存储在单点登录进程SSOService中。除SSOManagerAPP之外的其他单点登录APP(简称:三方APP)也基于SSOFramework开发。SSOManagerAPP和三方APP统称为单点登录APP。SSOFramework主要包含进程间通信模块和页面跳转模块,进程间通信模块基于Android平台的AIDL实现与SSOService的进程间通信,页面跳转模块基于Android平台的Activity实现页面的跳转。

各模块的工作流程如下:

SSOFramework进程间通信模块:当Android设备启动一个单点移动应用时:

1、用户向SSOFramework进程间通信模块注入移动应用上下文信息Context;

2、进程间通信模块根据Context启动单点登录进程模块,即SSOService;

3、进程间通信模块将当前应用绑定到SSOService,并根据AIDL接口获取单点登录进程模块的实例信息;

4、进程间通信模块根据SSOService的实例信息从SSOService中获取设备登录会话信息。

SSOFramework页面跳转模块:

1、页面跳转模块通过进程间通信模块从SSOService获取会话信息;

2、会话信息存在,说明用户已经通过其他APP完成单点登录,直接跳转到当前应用的主界面;

3、会话信息不存在,说明用户未实现单点登录,此时需跳转到SSOManagerAPP的单点登录界面;

4、在单点登录界面登录成功后,执行跳转模块的回调接口,此回调接口基于Activity的onActivityResult接口实现;

5、在回调接口中跳转模块将跳转到当前应用的主界面。

单点登录进程模块SSOService的启动步骤包括:

1)SSOService启动时首先检查本地是否存储有设备登录会话信息,若没有则直接启动,若有则进入步骤2);

2)若本地存储有会话信息,则到服务器检查设备登录会话信息是否有效,如果无效则直接启动,如果有效则进入步骤3);

优选,此步骤中,单点登录进程SSOService具有会话校验机制,即:当检测到会话信息失效时,发送会话失效广播给单点登录APP,各单点登录APP通过SSOFramework接收会话失效广播进行相应的处理,避免了单点登录APP各自到服务器校验会话信息的问题。

3)若本地会话信息有效,则将会话信息解密后存储在单点登录进程模块的内存中,单点登录进程完成启动。

单点登录具体流程如下:

1、单点登录APP启动时,通过SSOFramework的进程间通信模块,启动SSOManagerAPP的单点登录进程SSOService,并将当前进程绑定到SSOService。

2、单点登录APP从SSOService获取会话信息,获取成功说明该设备已经登录成功,则启动该APP的主界面,该APP单点登录流程结束。

3、单点登录APP从SSOService获取会话信息,获取失败说明该设备未进行单点登录,此时当前APP通过SSOFramework启动SSOManagerAPP中的单点登录界面,进行登录认证。

4、认证时当前APP(当前APP指用户当前正在移动设备上使用的单点登录APP)通过SSOFramework将账号信息发送到SSOService,由SSOService连接后台服务器进行登录认证。

5、SSOService通过广播机制将认证结果发送到单点登录APP。

6、当前APP接收认证广播,认证失败时,显示认证失败信息以提示用户,并重新回到单点登录界面。

7、认证通过后SSOService保存会话信息,并将会话信息加密存储在本地文件系统中。

8、单点登录APP接收到认证成功广播后,通过SSOFramework关闭当前单点登录界面,并启动自身主界面。

当单点移动应用注销时,通过SSOFramework将注销命令发送到SSOService,由SSOService完成具体注销过程,具体流程如下:

步骤a、通过进程间通信模块将注销命令和当前移动应用的packagename发送到单点登录进程模块;

步骤b、单点登录进程模块接收到注销命令后,删除内存中会话信息和存储在本地文件系统中的设备登录会话信息,同时发送单点登录注销广播,并异步连接后台服务器完成用户注销;

步骤c、单点移动应用接收到注销广播后,根据广播中携带的packagename信息,判断自己是否为当前移动应用:若是,则关闭自身页面并启动单点登录界面;否则,关闭自身页面。其中,判断逻辑为:若移动应用的packagename与广播中携带的相同则判定此移动应用为当前移动应用。

单点登录的登录、注销、会话信息保存等功能都在SSOService中实现,SSOService提供并实现了单点登录的登录接口(login)、注销接口(logout)及获取会话信息接口(getSession),供单点登录APP调用。SSOService可以由SSOManagerAPP启动也可由其他单点登录APP启动。

SSOFramework提供对SSOService的状态检查机制,当单点登录APP通过SSOFramework与SSOService通信时,SSOFramework首先检查SSOService的状态,若SSOService所在进程被系统意外杀掉,SSOFramework首先启动SSOService,然后再与SSOService通信。在此过程中,由于SSOService具有会话信息恢复机制,所以即使SSOService被系统杀掉,仍不影响用户的正常使用。

本发明的有益效果是:

第一、各单点移动应用(即单点登录APP)通过本发明提供的SSOFramework与同一单点登录进程SSOService通信,无需直接与后台认证服务器交互即可获取用户的会话信息;同时本发明提供了统一的单点登录界面、统一的注销管理机制,单点登录APP通过SSOFramework跳转到单点登录界面,无需自己实现登录和注销逻辑,简化了APP的开发流程,减低了APP的使用成本。

第二、单点登录进程SSOService具有会话恢复机制,在SSOService进程被系统意外杀掉的情况下,SSOService启动时会自动检测会话信息是否过期,若未过期则直接恢复会话而无需重新登录,会话恢复过程在运行时自动完成,用户毫无感知,极大提升了用户体验。

第三、单点登录进程SSOService具有会话校验机制,当检测到会话信息失效时,发送会话失效广播给单点登录APP,各单点登录APP通过SSOFramework接收会话失效广播进行相应的处理。避免了单点登录APP各自到服务器校验会话信息的问题。

第四、单点登录框架SSOFramework在运行时提供了对SSOService的状态检查机制,在和SSOService通信时首先检查SSOService的状态,若SSOService所在进程被系统意外杀掉,SSOFramework首先启动SSOService,然后再与SSOService通信。在此过程中,由于SSOService具有会话信息恢复机制,所以即使SSOService被系统杀掉,仍不影响用户的正常使用,极大提升了系统的健壮性。

第五、单点登录的登录、注销、会话信息保存等功能都在SSOService中实现,通过一个独立的单点登录进程SSOService为多个单点登录APP提供登录管理服务,各单点登录APP相互独立并通过同一单点登录进程SSOService共享会话信息。在移动设备(一般为手机)性能允许的情况下,该单点登录方法不受单点登录APP数量的限制,具有良好的伸缩性。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或者等效流程变换,或者直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号