用户账户保持登录态的方法及系统的制作方法
【专利摘要】本发明涉及一种用户账户保持登录态的方法,包括:获取与用户标识对应的数据访问请求,所述数据访问请求中包括与所述用户标识对应的会话标识;根据所述数据访问请求提取会话标识,获取与所述会话标识对应的会话;将所述获取到的会话分配给所述数据访问请求。此外,还提供了一种用户账户保持登录态的系统。上述用户账户保持登录态的方法和系统可以减少资源开销。
【专利说明】用户账户保持登录态的方法及系统
【技术领域】
[0001]本发明涉及互联网【技术领域】,特别是涉及一种用户账户保持登录态的方法及系统。
【背景技术】
[0002]互联网技术的发展改变了人类的生活方式,人类的社交活动渐渐地由传统的登门拜访、聚会派对演变为互联网上虚拟社交活动。互联网用户可通过论坛、微博、网络游戏等虚拟社区与他人进行沟通和互动。用户账户则代表了该用户在虚拟社区中的虚拟身份。
[0003]通常情况下,一个用户可在一个虚拟社区中拥有多个虚拟身份,即多个用户账户。用户可通过登录相应的用户账户来以不同的虚拟身份与他人沟通或互动。
[0004]传统技术中的用户账户保持登录态的方法通常采用会话(session)机制,可通过将与客户端对应的会话分配给其发出的数据访问请求来保持登录态。然而,当用户在客户端切换用户账户(即更改当前操作客户端的用户标识)时,由于会话对应的用户账户无法相应切换,需要通过注销当前已登录的用户账户,然后再输入其他用户账户和密码重新登录,从而创建新的会话来保持登录态。当用户较多时,频繁的登录和注销请求会使得登录服务器需要花费大量资源处理账户密码查询以及会话的创建和注销任务,从而增加了资源开销。且每次切换用户后都需要输入用户账户和密码重新登录来保持登录态,使得用户操作的便利性不足。
【发明内容】
[0005]基于此,有必要提供一种能降低资源开销的用户账户保持登录态的方法。
[0006]一种用户账户保持登录态的方法,包括:
[0007]获取与用户标识对应的数据访问请求,所述数据访问请求中包括与所述用户标识对应的会话标识;
[0008]根据所述数据访问请求提取会话标识,获取与所述会话标识对应的会话;
[0009]将所述获取到的会话分配给所述数据访问请求。
[0010]在其中一个实施例中,所述方法还包括:
[0011]获取用户登录请求,所述用户登陆请求中包括用户标识;
[0012]根据所述用户登录请求提取用户标识,对所述用户标识进行身份验证,验证成功后创建与所述用户标识对应的会话;
[0013]获取与所述创建的会话对应的会话标识;
[0014]将所述会话标识与所述用户标识对应缓存。
[0015]在其中一个实施例中,所述将所述会话标识与所述用户标识对应缓存的步骤为:
[0016]将所述会话标识与所述用户标识对应缓存到客户端的cookie和/或页面文件中。
[0017]在其中一个实施例中,所述获取与所述会话标识对应的会话的步骤为:
[0018]向信任服务器发送会话获取请求,所述会话获取请求包括所述会话标识;[0019]获取所述信任服务器返回的与所述会话标识对应的会话。
[0020]在其中一个实施例中,所述获取与所述会话标识对应的会话的步骤之后还包括:
[0021]若未获取到与所述会话标识对应的会话,则提示登录。
[0022]此外,还有必要提供一种能降低资源开销的用户账户保持登录态的系统。
[0023]一种用户账户保持登录态的系统,包括:
[0024]访问请求获取模块,用于获取与用户标识对应的数据访问请求,所述数据访问请求中包括与所述用户标识对应的会话标识;
[0025]会话获取模块,用于根据所述数据访问请求提取会话标识,获取与所述会话标识对应的会话;
[0026]会话分配模块,用于将所述获取到的会话分配给所述数据访问请求。
[0027]在其中一个实施例中,还包括登陆请求获取模块,用于获取用户登录请求,所述用户登陆请求中包括用户标识;
[0028]身份验证模块,用于根据所述用户登录请求提取用户标识,对所述用户标识进行身份验证;
[0029]会话创建模块,用于验证成功后创建与所述用户标识对应的会话;
[0030]缓存写入模块,用于获取与所述创建的会话对应的会话标识,将所述会话标识与所述用户标识对应缓存。
[0031]在其中一个实施例中,所述缓存写入模块还用于将所述会话标识与所述用户标识缓存到客户端的cookie和/或页面文件中。
[0032]在其中一个实施例中,所述会话获取模块还用于向信任服务器发送会话获取请求,所述会话获取请求包括所述会话标识;获取所述信任服务器返回的与所述会话标识对应的会话。
[0033]在其中一个实施例中,还包括登录提示模块,用于在未获取到与会话标识对应的会话时提示登录。
[0034]上述用户账户保持登录态的方法和系统,获取到的数据访问请求中包含了与用户标识(用户选择的用户账户)对应的会话标识,然后根据获取与该会话标识对应的会话并分配给获取到的数据访问请求。也就是说,分配给数据访问请求的会话为与用户标识对应的会话,且与用户标识对应的会话可反复使用,使得可在同一客户端实现多用户账户同时处于登录态的功能,而不用在切换用户账户时,重复对该用户标识进行验证,并创建新的会话来分配给与该用户标识对应的数据访问请求。使得对用户标识进行验证的次数减少,减少了登录服务器进行账户密码验证的压力,同时,没有创建新的会话来处理数据访问请求,减少了创建会话和清除会话的频率,从而降低了资源开销。
[0035]而对于用户而言,在切换用户账户时,不用频繁的输入登录的账户和密码信息。使得用户操作更简洁,从而提高了用户操作的便利性。
【专利附图】
【附图说明】
[0036]图1为一个实施例中用户账户保持登录态的方法的流程图;
[0037]图2为一个实施例中用户登录方法的流程图;
[0038]图3为一个实施例中用户账户保持登录态的系统的结构示意图;[0039]图4为另一个实施例中用户账户保持登录态的系统的结构示意图。
【具体实施方式】
[0040]在一个实施例中,如图1所示,一种用户账户保持登录态的方法,包括:
[0041] 步骤S102,获取与用户标识对应的数据访问请求,数据访问请求中包括与用户标识对应的会话标识。
[0042]用户标识即用户账户的标识,可以为字符串或数字。在一个实施例中,数据访问请求由客户端发出,与处于激活态的用户标识对应。处于激活态的用户标识即为当前对客户端处于操作态的用户标识,对应当前在客户端进行操作的用户账户。在本实施例中,客户端可获取输入的用户标识设置操作,并将与该用户标识设置操作对应的用户标识设置为激活态。
[0043]例如,客户端可以为浏览器,浏览器可在页面上以下拉菜单的形式展示多个用户标识,下拉菜单中处于选中状态的用户标识即为处于激活态的用户标识。用户可通过对下拉菜单进行选中操作来设置用户标识的激活态。用户通过浏览器发出的对其他站点的数据访问请求即与页面上处于激活态的用户标识对应。
[0044]在一个实施例中,可预先将会话标识与用户标识对应缓存。本实施例中,客户端可在缓存中查找与用户标识对应的会话标识,根据查找到的会话标识生成数据访问请求。
[0045]在本实施例中,如图2所示,用户账户保持登录态的方法还包括:
[0046]步骤S202,获取用户登录请求,用户登陆请求中包括用户标识。
[0047]步骤S204,根据用户登录请求提取用户标识,对用户标识进行身份验证,验证成功后创建与用户标识对应的会话。
[0048]步骤S206,获取与创建的会话对应的会话标识。
[0049]步骤S208,将会话标识与用户标识对应缓存。
[0050]在本实施例中,用户登录请求中还可包括密码。对用户进行身份验证的步骤可具体为:通过验证密码对用户进行身份验证。在另一个实施例中,还可通过LDAP(LightweightDirectory Access Protocol,轻量目录访问协议)通过用户标识对用户进行身份验证。
[0051]在本实施例中,将会话标识与用户标识对应缓存的步骤可具体为:将会话标识和用户标识对应缓存到客户端的cookie和/或页面文件中。
[0052]在本实施例中,客户端可在本地的cookie和/或页面文件中查找与用户标识对应的会话标识,根据查找到的会话标识生成数据访问请求。
[0053]例如,可在cookie中以键值对的形式存储用户标识和会话标识。在生成数据访问请求时,可获取处于激活态的用户标识,根据该用户标识在cookie中查找对应的会话标识,并将该会话标识添加到数据访问请求的头部。
[0054]也可在页面文件中以隐藏标签(〈hiddenX/hidden〉)的形式与用户标识对应存储。在生成数据访问请求时,可获取处于激活态的用户标识,根据该用户标识在页面文件的隐藏标签中查找对应的会话标识,并将该会话标识附加在请求的URL (Uniform ResourceLocator,统一资源定位符)的末尾。例如,生成的数据访问请求的URL可以为“http://www.aaa.com/index.html?sid=123456789,,。其中,“http://www.aaa.com/index, html”为原始访问URL,“ 123456789”为会话标识。[0055]步骤S104,根据数据访问请求提取会话标识,获取与会话标识对应的会话。
[0056]会话标识与会话 对应。在一个实施例中,会话以对象的形式存在,存储于服务器的内存中。可预设会话标识和会话对象的映射关系,进一步的,可通过键值表缓存该映射关系。获取与会话标识对应的会话的步骤可具体为:在键值表中根据会话标识查找与会话标识对应的会话。
[0057]进一步的,还可将会话对象序列化成二进制流持久化存储。获取与会话标识对应的会话的步骤可具体为:获取与会话标识对应的持久化存储的二进制流,将获取到的二进制流反序列化成会话对象。
[0058]由于服务器的内存有限,用户访问量较大时,会话对象较多,会占用服务器的大量内存空间。将内存中的会话对象序列化成二进制流,并将该二进制流持久化存储,可将会话对象以文件的形式存储到硬盘,磁带或以二进制流的形式存储在数据库中,从而减少了会话对象的内存占用率,节省了系统资源。
[0059]步骤S106,将获取到的会话分配给数据访问请求。
[0060]将会话分配给数据访问请求即为将会话所表示的操作空间和时间分配给数据访问请求,用于数据交互。
[0061 ] 在一个实施例中,可将会话封装成会话对象,可将接收到的数据访问请求封装成访问请求对象。将获取到的会话分配给数据访问请求的步骤可具体为:将会话对象作为属性赋值给访问请求对象。
[0062]在一个实施例中,会话还设置有生命周期。可定期检测会话的生命周期是否超期,若是,则注销该会话。
[0063]在本实施例中,获取与会话标识对应的会话的步骤之后还包括:若未获取到与会话标识对应的会话,则提示登录。
[0064]某个用户标识对应的会话由于超期,可能被注销。当会话被注销后,根据会话标识查找时则会获取不到对应的会话。在本实施例中,可通过跳转到提示页面来提示用户进行登录,从而重新创建与用户标识对应的会话。
[0065]在一个实施例中,获取与会话标识对应的会话的步骤可具体为:向信任服务器发送会话获取请求,会话获取请求包括会话标识;获取信任服务器返回的与会话标识对应的会话。
[0066]在本实施例中,用户登录的方式为单点登录的方式,S卩,登录用户可以访问所有信任服务器而不用再次登录。在根据接收到数据访问请求提取到会话标识后,可通过发送会话获取请求在该用户已登录的信任服务器上查询与会话标识对应的已创建的会话。信任服务器可将获取到的会话序列化成二进制流返回。可将返回的二进制流反序列化成会话对象。
[0067]在一个实施例中,如图3所示,一种用户账户保持登录态的系统,包括访问请求获取模块102、会话获取模块104、会话分配模块106,其中:
[0068]访问请求获取模块102,用于获取与用户标识对应的数据访问请求,数据访问请求中包括与用户标识对应的会话标识。
[0069]用户标识即用户账户的标识,可以为字符串或数字。在一个实施例中,访问请求获取模块102获取到的数据访问请求由客户端发出,与处于激活态的用户标识对应。处于激活态的用户标识即为当前对客户端处于操作态的用户标识,对应当前在客户端进行操作的用户账户。在本实施例中,客户端可获取输入的用户标识设置操作,并将与该用户标识设置操作对应的用户标识设置为激活态。
[0070]例如,客户端可以为浏览器,浏览器可在页面上以下拉菜单的形式展示多个用户标识,下拉菜单中处于选中状态的用户标识即为处于激活态的用户标识。用户可通过对下拉菜单进行选中操作来设置用户标识的激活态。用户通过浏览器发出的对其他站点的数据访问请求即与页面上处于激活态的用户标识对应。
[0071] 在一个实施例中,可预先将会话标识与用户标识对应缓存。本实施例中,客户端可在缓存中查找与用户标识对应的会话标识,根据查找到的会话标识生成数据访问请求。
[0072]在本实施例中,如图4所示,用户账户保持登录态的系统还包括:
[0073]登陆请求获取模块108,用于获取用户登录请求,用户登陆请求中包括用户标识。
[0074]身份验证模块110,用于根据用户登录请求提取用户标识,对用户标识进行身份验证。
[0075]会话创建模块112,用于验证成功后创建与用户标识对应的会话。
[0076]缓存写入模块114,用于获取与创建的会话对应的会话标识,将会话标识与用户标识对应缓存。
[0077]在本实施例中,用户登录请求中还可包括密码。身份验证模块110可用于通过验证密码对用户进行身份验证。在另一个实施例中,身份验证模块110还可用于通过LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)通过用户标识对用户进行身份验证。
[0078]在本实施例中,缓存写入模块114还可用于将会话标识和用户标识对应缓存到客户端的cookie和/或页面文件中。
[0079]在本实施例中,客户端可在本地的cookie和/或页面文件中查找与用户标识对应的会话标识,根据查找到的会话标识生成数据访问请求。
[0080]例如,缓存写入模块114可用于在cookie中以键值对的形式存储用户标识和会话标识。客户端生成数据访问请求时,可获取处于激活态的用户标识,根据该用户标识在cookie中查找对应的会话标识,并将该会话标识添加到数据访问请求的头部。
[0081]缓存写入模块114也可用于在页面文件中以隐藏标签(〈hiddenX/hidden〉)的形式与用户标识对应存储。客户端在生成数据访问请求时,可获取处于激活态的用户标识,根据该用户标识在页面文件的隐藏标签中查找对应的会话标识,并将该会话标识附加在请求的URL (Uniform Resource Locator,统一资源定位符)的末尾。例如,生成的数据访问请求的URL可以为:
[0082]“http://www.aaa.com/index.html?sid=123456789”
[0083]其中,“http://www.aaa.com/index, html” 为原始访问 URL, “123456789” 为会话标识。
[0084]会话获取模块104,用于根据数据访问请求提取会话标识,获取与会话标识对应的会话。
[0085]会话标识与会话一一对应。在一个实施例中,会话以对象的形式存在,存储于服务器的内存中。可预设会话标识和会话对象的映射关系,进一步的,可通过键值表缓存该映射关系。会话获取模块104可用于在键值表中根据会话标识查找与会话标识对应的会话。
[0086]进一步的,还可将会话对象序列化成二进制流持久化存储。会话获取模块104还可用于获取与会话标识对应的持久化存储的二进制流,将获取到的二进制流反序列化成会话对象。
[0087]由于服务器的内存有限,用户访问量较大时,会话对象较多,会占用服务器的大量内存空间。将内存中的会话对象序列化成二进制流,并将该二进制流持久化存储,可将会话对象以文件的形式存储到硬盘,磁带或以二进制流的形式存储在数据库中,从而减少了会话对象的内存占用率,节省了系统资源。
[0088]会话分配模块106,用于将获取到的会话分配给数据访问请求。
[0089]将会话分配给数据访问请求即为将会话所表示的操作空间和时间分配给数据访问请求,用于数据交互。
[0090]在一个实施例中,可将会话封装成会话对象,可将接收到的数据访问请求封装成访问请求对象。会话分配模块106可用于将会话对象作为属性赋值给访问请求对象。
[0091]在一个实施例中,会话还设置有生命周期。用户账户保持登录态的系统还包括会话检测模块(图中未标示),用于定期检测会话的生命周期是否超期,若是,则注销该会话。
[0092]在本实施例中,如图4所示,用户账户保持登录态的系统还包括登录提示模块116,用于在未获取到与会话标识对应的会话时提示登录。
[0093]某个用户标识对应的会话由于超期,可能被注销。当会话被注销后,根据会话标识查找时则会获取不到对应的会话。在本实施例中,登录提示模块116可用于通过跳转到提示页面来提示用户进行登录,从而重新创建与用户标识对应的会话。
[0094]在一个实施例中,会话获取模块104还用于向信任服务器发送会话获取请求,会话获取请求包括会话标识;获取信任服务器返回的与会话标识对应的会话。
[0095]在本实施例中,用户登录的方式为单点登录的方式,即,登录用户可以访问所有信任服务器而不用再次登录。会话获取模块104在根据接收到数据访问请求提取到会话标识后,可通过发送会话获取请求在该用户已登录的信任服务器上查询与会话标识对应的已创建的会话。信任服务器可将获取到的会话序列化成二进制流返回。会话获取模块104可将返回的二进制流反序列化成会话对象。
[0096]上述用户账户保持登录态的方法和系统,获取到的数据访问请求中包含了与用户标识(用户选择的用户账户)对应的会话标识,然后根据获取与该会话标识对应的会话并分配给获取到的数据访问请求。也就是说,分配给数据访问请求的会话为与用户标识对应的会话,且与用户标识对应的会话可反复使用,使得可在同一客户端实现多用户账户同时处于登录态的功能,而不用在切换用户账户时,重复对该用户标识进行验证,并创建新的会话来分配给与该用户标识对应的数据访问请求。使得对用户标识进行验证的次数减少,减少了登录服务器进行账户密码验证的压力,同时,没有创建新的会话来处理数据访问请求,减少了创建会话和清除会话的频率,从而降低了资源开销。
[0097]而对于用户而言,在切换用户账户时,不用频繁的输入登录的账户和密码信息。使得用户操作更简洁,从而提高了用户操作的便利性。
[0098]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种用户账户保持登录态的方法,包括: 获取与用户标识对应的数据访问请求,所述数据访问请求中包括与所述用户标识对应的会话标识; 根据所述数据访问请求提取会话标识,获取与所述会话标识对应的会话; 将所述获取到的会话分配给所述数据访问请求。
2.根据权利要求1所述的用户账户保持登录态的方法,其特征在于,所述方法还包括: 获取用户登录请求,所述用户登陆请求中包括用户标识; 根据所述用户登录请求提取用户标识,对所述用户标识进行身份验证,验证成功后创建与所述用户标识对应的会话; 获取与所述创建的会话对应的会话标识; 将所述会话标识与所述用户标识对应缓存。
3.根据权利要求2所述的用户账户保持登录态的方法,其特征在于,所述将所述会话标识与所述用户标识对应缓存的步骤为: 将所述会话标识与所述用户标识对应缓存到客户端的cookie和/或页面文件中。
4.根据权利要求1至3任一项所述的用户账户保持登录态的方法,其特征在于,所述获取与所述会话标识对应的会话的步骤为: 向信任服务器发送会话获取请求,所述会话获取请求包括所述会话标识;` 获取所述信任服务器返回的与所述会话标识对应的会话。
5.根据权利要求1至3任一项所述的用户账户保持登录态的方法,其特征在于,所述获取与所述会话标识对应的会话的步骤之后还包括: 若未获取到与所述会话标识对应的会话,则提示登录。
6.一种用户账户保持登录态的系统,其特征在于,包括: 访问请求获取模块,用于获取与用户标识对应的数据访问请求,所述数据访问请求中包括与所述用户标识对应的会话标识; 会话获取模块,用于根据所述数据访问请求提取会话标识,获取与所述会话标识对应的会话; 会话分配模块,用于将所述获取到的会话分配给所述数据访问请求。
7.根据权利要求6所述的用户账户保持登录态的系统,其特征在于,还包括登陆请求获取模块,用于获取用户登录请求,所述用户登陆请求中包括用户标识; 身份验证模块,用于根据所述用户登录请求提取用户标识,对所述用户标识进行身份验证; 会话创建模块,用于验证成功后创建与所述用户标识对应的会话; 缓存写入模块,用于获取与所述创建的会话对应的会话标识,将所述会话标识与所述用户标识对应缓存。
8.根据权利要求7所述的用户账户保持登录态的系统,其特征在于,所述缓存写入模块还用于将所述会话标识与所述用户标识缓存到客户端的cookie和/或页面文件中。
9.根据权利要求6至8任一项所述的用户账户保持登录态的系统,其特征在于,所述会话获取模块还用于向信任服务器发送会话获取请求,所述会话获取请求包括所述会话标识;获取所述信任服务器返回的与所述会话标识对应的会话。
10.根据权利要求6至8任一项所述的用户账户保持登录态的系统,其特征在于,还包括登录提示模块,用于 在未获取到与会话标识对应的会话时提示登录。
【文档编号】H04L29/08GK103532919SQ201210233708
【公开日】2014年1月22日 申请日期:2012年7月6日 优先权日:2012年7月6日
【发明者】熊鹏飞 申请人:腾讯科技(深圳)有限公司