一种实现登录XMPP服务器的方法和系统

出售状态:已下证
专 利 号 :已交易,保密
专利类型:发明专利
专利分类:软件开发
出售价格:
直 接 购 买 联 系 客 服

详细介绍


技术领域

本发明涉及网络技术领域,更具体的说是涉及一种实现登录XMPP服务器的方法和系统。


背景技术

随着互联网技术的发展,社交网络服务也得到了迅猛的发展,各种社交网络网站应运而生。社交网络网站也称社交网站,是为有同样兴趣或爱好的人基于互联网建立的在线社区,为用户提供各种联系交流的渠道。如,国外的facebook,国内的人人网、开心网等都属于比较成熟的社交网站。

为了提供更多的用户功能,提高用户体验,很多社交网站都为第三方开放了应用程序编程接口(API,Application Programming Interface),利用这些API接口,第三方开发者可以在社交网络网站上开发各种组件,能够让社交网站的用户直接访问第三方开发者的网站。同时,第三方网站也可以利用社交网站已有的用户群和用户建立好的社交关系,使第三方网站具有社交性。

但是当第三方网站为基于可扩展消息在线协议(XMPP,ExtensibleMessaging and Presence Protocol)技术建立的XMPP服务器时,社交网站的用户却不能使用社交网站的账号登录第三方XMPP服务器。这是由于现有的登录XMPP服务器的方法为:用户需要通过客户端在XMPP服务器上进行注册,以取得一个唯一标识的账号或用户名(JID,JabberIdentifier),XMPP服务器存储该JID及相应的密码,当用户客户端输入JID及相应的密码登录XMPP服务器时,XMPP服务器将该用户提供的JID及相应的密码与其所存储的的JID及密码进行比对,当它们一致时,允许该用户登录。当第三方网站为XMPP服务器时,由于该XMPP服务器无法获取到社交网站中的用户名和密码信息,因此,社交网站的用户无法使用社交网站的账号和密码登录这种第三方XMPP服务器,无法实现第三方网站利用社交网站的已有用户群建立良好社交关系的目的。


发明内容

有鉴于此,本发明提供一种实现登录XMPP服务器的方法和系统,当社交网站的第三方网站为XMPP服务器时,社交网站的用户能使用该社交网站的账号和密码登录该第三方XMPP服务器。

为实现上述目的,本发明提供一种实现登录XMPP服务器的方法,包括:

接收客户端选择使用某社交网站的账号进行登录的请求;

为所述客户端返回所述社交网站的第三方登录入口,以便用户通过客户端在所述第三方登录入口输入账号登录所述社交网站;

当客户端接收到所述社交网站的服务器返回的账号访问信息,并将所述社交网站的标识信息和所述账号访问信息作为登录信息发送时,接收所述登录信息,所述账号访问信息包括账号标识信息;

判定所述社交网站的标识信息归属的社交网站,并根据预先与该社交网站的服务器制定的规则,判断所述账号标识信息是否符合登录条件,如果是,则建立与所述客户端之间的XMPP连接。

优选的,所述接收客户端选择使用某社交网站的账号进行登录的请求包括:接收客户端通过访问指定的HTTP入口,发出的使用社交网站的账号进行登录的请求,其中,指定的HTTP入口是XMPP服务器为使用特定社交网站的账号进行登录而设置的。

优选的,所述接收客户端选择使用某社交网站的账号进行登录的请求包括:接收客户端通过在用户界面上选择使用某社交网站账号登录的选项,发出的登录请求;

所述为所述客户端返回所述社交网站的第三方登录入口包括:通过可扩展标记语言数据流通知客户端需要访问所述社交网站服务器指定的第三方登录入口。

优选的,所述账号标识信息包括:所述账号的用户标识、所述账号的登录会话标识、和/或会话过期时间。

优选的,所述账号访问信息还包括:社交网站根据预先与XMPP服务器约定的密钥,对所述账号标识信息生成的数字签名;

所述根据预先与该社交网站的服务器制定的规则,判断所述账号标识信息是否符合登录条件包括:根据预先与该社交网站服务器约定的密钥,将所述客户端发送的账号标识信息生成数字签名,判断该数字签名与所述账号访问信息包含的数字签名是否匹配,如果是,则符合登录条件。

优选的,所述建立与所述客户端之间的XMPP连接包括:查询是否保存有与所述账号相对应的XMPP用户名,如果是,则在所述XMPP用户名下,建立与所述客户端之间连接;如果否,则创建一个与所述账号相对应的XMPP用户名,并在所述XMPP用户名下,建立与所述客户端之间连接。

对应本发明的方法,本发明还提供了一种实现登录XMPP服务器的系统,包括:

请求接收模块,用于接收客户端选择使用某社交网站的账号进行登录的请求;

重定向模块,用于当请求接收模块接收所述请求后,为所述客户端返回所述社交网站的第三方登录入口,以便用户通过客户端在所述第三方登录入口输入账号登录所述社交网站;

信息接收模块,用于当客户端接收到所述社交网站的服务器返回的账号访问信息,并将所述社交网站的标识信息和所述账号访问信息作为登录信息发送时,接收所述登录信息,所述账号访问信息包括账号标识信息;

信息判断单元,用于判定所述社交网站的标识信息归属的社交网站,并根据预先与该社交网站的服务器制定的规则,判断所述账号标识信息是否符合登录条件,如果是,则建立与所述客户端之间的XMPP连接。

优选的,请求接收模块包括:第一请求接收模块,用于接收客户端通过访问指定的HTTP入口,发出的使用社交网站的账号进行登录的请求,其中,指定的HTTP入口是XMPP服务器为使用某特定社交网站的账号进行登录而设置的。

优选的,所述请求接收模块包括:第二请求接收模块,用于接收客户端通过在用户界面上选择使用某社交网站账号登录的选项,发出的登录请求;

所述重定向模块包括:第二重定向模块,用于通过可扩展标记语言数据流通知客户端需要访问所述社交网站服务器指定的第三方登录入口。

优选的,所述账号标识信息包括:所述账号的用户标识、所述账号的登录会话标识、和/或会话过期时间。

优选的,所述账号访问信息还包括:社交网站根据预先与XMPP服务器约定的密钥,对所述账号标识信息生成的数字签名;

所述信息判断单元包括:信息判断子单元,用于根据预先与该社交网站服务器约定的密钥,将所述客户端发送的账号标识信息生成数字签名,判断该数字签名与所述账号访问信息包含的数字签名是否匹配,如果是,则符合登录条件。

优选的,信息判断单元包括:连接建立单元,用于当所述账号标识信息符合登录条件时,查询是否保存有与所述账号相对应的XMPP用户,如果是,则在所述XMPP用户名下,建立与所述客户端之间连接;如果否,则创建一个与所述账号相对应的XMPP用户,并则在所述XMPP用户名下,建立与所述客户端之间连接。

经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种实现登录XMPP服务器的方法和系统,当客户端选择使用某社交网站的账号登录XMPP服务器时,XMPP服务器为客户端返回所述社交网站的第三方登录入口。客户端通过在第三方登录入口输入所述社交网站的账号登录所述社交网站的服务器,所述社交网站的服务器为所述客户端返回账号标识信息和相应的数字签名,客户端将所述账号标识信息和数字签名,以及所述社交网站的标识信息发送给XMPP服务器,XMPP服务器根据与所述社交网站的预先约定的规则,判断所述账号标识信息是否符合登录条件,当符合登录条件时,建立XMPP服务器与所述客户端之间的XMPP连接。本方法实现了社交网站的用户使用社交网站的账号和密码登录第三方XMPP服务器,从而实现第三方网站利用社交网站的已有用户群建立良好社交关系的目的。


附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明一种实现登录XMPP服务器的方法的实施例的流程图;

图2为本发明一种实现登录XMPP服务器的方法的另一个实施例的流程图;

图3为本发明一种实现登录XMPP服务器的系统的结构示意图。


具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,为本发明一种实现登录XMPP服务器的方法实施例,该方法包括:

步骤S101:接收客户端选择使用某社交网站的账号进行登录的请求;

其中,现有的登录XMPP服务器的流程为:用户输入已在XMPP服务器上注册的账号和相应的密码发出登录请求,XMPP服务器会对该账号和密码进行验证,验证通过,则允许该用户通过客户端访问XMPP服务器。

为了区别于现有的使用XMPP服务器的账号进行登录的请求,XMPP服务器可以预先设置HTTP入口,当然针对使用不同的社交网站的账号,会设置不同的HTTP入口。这种情况下XMPP服务器接收客户端选择使用某社交网站的账号进行登录的请求,可以为:接收客户端通过访问指定的HTTP入口,发出的使用社交网站的账号进行登录的请求,其中,指定的HTTP入口是XMPP服务器为使用某特定社交网站的账号进行登录而设置的。

当用户需要使用某社交网站的账号登录XMPP服务器时,可以通过客户端访问指定的HTTP入口。例如,某社交网站A向该XMPP服务器(xmpp-example.com)开放了第三方应用程序编程接口(API,ApplicationProgramming Interface),则XMPP服务器和社交网站A之间可以做如下约定:社交网站提供一个可标识该XMPP服务器的api-key;约定标识该社交网站的域名为:sns-example.com。XMPP服务器就可以设定一个http地址为:http://xmpp-example.com/login-using-sns-example,当客户端需要使用社交网站A的账号登录该XMPP服务器时,就可以访问该http入口。

当然,XMPP服务器还可以在用户登录界面上设置使用“某网站账号登录”选项,则接收客户端选择某社交网站的账号进行登录的请求,可以为:接收客户端通过在用户界面上选择使用某社交网站账号登录的选项,发出的登录请求。仍以社交网站A向XMPP服务器(xmpp-example.com)开放了第三方API接口为例,XMPP服务器可以在用户界面设置“使用社交网站A的账号”的登录选项,当用户需要使用社交网站A的账号登录XMPP服务器时,就可以通过选择该选项,向XMPP服务器发出连接请求。

当然,还可以有其他方式实现客户端选择使用某社交网站的账号进行登录的请求,只要是能与使用XMPP服务器的账号进行登录的方式区别即可。

步骤S102:为所述客户端返回所述社交网站的第三方登录入口,以便用户通过客户端在所述第三方登录入口输入账号登录所述社交网站;

当接收到客户端需要使用指定的社交网站的账号登录XMPP服务器的请求时,XMPP服务器将为该客户端返回该社交网站的第三方登录入口。其中,该第三方登录入口,为社交网站与该XMPP服务器预先约定的,且为该社交网站为该XMPP服务器所提供的用户登录入口。

其中,为所述客户端返回所述社交网站的第三方登录入口的形式,根据客户端选择使用某社交网站的账号进行登录请求的方式的不同可以有多种,可以为:当用户需要使用某社交网站账号访问XMPP服务器时,通过访问XMPP服务器指定的HTTP入口建立连接,XMPP服务器自动为该客户端重定向到指定的入口地址,即第三方登录入口。例如,仍以上面举出的例子进行说明,该XMPP服务器为实现用户能使用社交网站A的账号进行登录,设定一个http地址为:http://xmpp-example.com/login-using-sns-example,当客户端访问该http入口时,被自动重定向到社交网站A为该XMPP服务器指定的第三方登录入口地址:https://sns-example.com/login?apikey=someapikey。用户便可以通过该第三方登录入口输入社交网站的账号登录该社交网站的服务器。

当然为所述客户端返回所述社交网站的第三方登录入口的方式,还可以为:当用户通过客户端在用户界面上选择使用某社交网站账号登录的选项,发出的登录请求时,XMPP服务器可以通过可扩展标记语言(XML)数据流,通知客户端需要访问所述社交网站服务器指定的第三方登录入口,客户端可以主动访问该第三方登录入口。例如,当XMPP服务器通过XML流告知客户端:对于使用社交网站sns-example.com的账号进行登录,需要访问该指定第三方登录入口地址:

https://sns-example.com/login?apikey=someapikey,客户端可以主动访问该第三方登录入口地址,进入第三方登录入口的界面。

在返回的第三方登录入口的界面中,用户可以通过客户端输入该社交网站的账号和相应的密码进行登录,以访问该社交网站的服务器。

步骤S103:当客户端接收到所述社交网站的服务器返回的账号访问信息,并将所述社交网站的标识信息和所述账号访问信息作为登录信息发送时,接收所述登录信息,所述账号访问信息包括账号标识信息;

当用户通过客户端在社交网站的第三方登录入口输入该社交网站的账号,登录到该社交网站后,该社交网站会将该用户本次登录过程中的有关信息作为账号访问信息返回给该客户端。其中账号访问信息包括:该账号的标识信息,具体的可以包括:用户标识信息和登录会话标识等与该账号标识有关的信息。

当然账号访问信息还可以包括:社交网站的服务器根据预先与XMPP服务器约定的密钥,对账号标识信息所生成的数字签名。例如,社交网站可以通过与XMPP服务器预先约定的密钥将账号标识信息生成数字签名,社交网站可以通过客户端Cookies为客户端提供以上生成的数字签名。

当然,账号访问信息也可以包括会话过期时间等与该账号本次登录有关的其他信息。

当客户端接收到社交网站服务器返回的账号访问信息后,将把该社交网站标识信息和接收到的账号访问信息作为登录XMPP服务器的登录信息,发送给XMPP服务器。其中,社交网站标识信息为XMPP服务器和社交网站服务器预先约定的,以便该XMPP服务器能根据该社交网站标识,判断出该网站标识来自哪个社交网站的服务器。

其中,客户端发送的登录信息的形式可以有多种,只要能让XMPP服务器根据该登录信息判断出这不是使用在XMPP服务器上注册的账号和密码进行登录的方式,同时能根据该登录信息判断出该客户端是使用哪个社交网站的账号进行登录的即可。

客户端发送所述登录信息时,可以将账号访问信息以及该网站标识信息组合在一起作为用户名,登录XMPP服务器。例如,以“账号访问信息社交网站标识”的形式作为用户名发送给XMPP服务器。

当社交网站返回的账号访问信息包括账号标识信息和数字签名时,可以账号标识信息和社交网站标识一起组合成用户名,而将社交网站返回的数字签名作为密码发送登录XMPP服务器的请求。

步骤S104:判定所述社交网站的标识信息归属的社交网站,并根据预先与该社交网站的服务器制定的规则,判断所述账号标识信息是否符合登录条件,如果是,则建立与所述客户端之间的XMPP连接。

当接收到客户端发送的登录信息后,XMPP服务器将提取出登录信息中的社交网站标识,并根据该社交网站标识,得出该社交网站标识对应的社交网站服务器,从而确定是该社交网站为该客户端返回的账号标识信息,然后根据与该网站预先制定规则,判断该账号标识信息是否符合登录XMPP服务器的条件。

其中,判断所述账号标识信息是否符合登录条件的规则为XMPP服务器与社交网站预先制定的。具体的判断方式可以有多种,只要能判断发送该账号访问信息的客户端,已经使用该社交网站的账号登录社交网站,该账号已经通过了社交网站的验证即可。

其中账号访问信息还可以包括:社交网站服务器根据预先与XMPP服务器约定的密钥,将账号标识信息生成的数字签名。在该条件下,判断所述账号标识信息是否符合登录条件可以为:根据预先与该社交网站服务器约定的密钥,将所述客户端发送的账号标识信息生成数字签名,并将所述生成的数字签名与所述账号访问信息中包含的数字签名进行比对,如二者匹配,则所述账号标识信息符合登录条件。

另外,为防止“重放攻击”还可以在所述账号访问信息中包含会话过期时间,XMPP服务器可以对该会话过期时间进行判断,以确定该账号标识信息是否符合登录条件。

当所述账号标识信息符合登录条件时,XMPP服务器就可以建立与该客户端之间的XMPP连接。具体与该客户端建立XMPP连接可以为:查询是否保存有与所述账号相对应的XMPP用户名,如果是,则在所述XMPP用户名下,建立与所述客户端之间连接;如果否,则创建一个与所述账号相对应的XMPP用户名,并在所述XMPP用户名下,建立与所述客户端之间连接。例如,XMPP服务器中可以保存社交网站账号(或社交网站用户名)与该XMPP用户名之间的关联关系表。在与该客户端建立XMPP连接之前,查询该关联关系表中是否保存有与该客户端登录时使用的账号相对应的XMPP用户名,如果存在,则可以在该XMPP用户名下,建立该XMPP用户名与客户端之间的XMPP连接,如果不存在,则需要创建与该社交网站的账号对应XMPP用户名。

通过本实施例的方法,当社交网站向第三方为XMPP服务器的网站开发API接口时,社交网站的用户可以使用社交网站的账号和密码登录第三方XMPP服务器,从而实现第三方网站利用社交网站的已有用户群建立良好社交关系的目的。

在XMPP服务器对客户端发送的登录信息进行验证前还包括:判断所述接收到的所述登录信息的形式是否符合在XMPP服务器中注册的账号的格式,如果是,则进行使用XMPP服务器的账号登录XMPP服务器的验证过程;如果否,则进行后续的判断标识信息的步骤。例如,使用XMPP服务器的账号进行登录XMPP服务器时,用户在客户端输入账号和密码,该账号的形式为:nodedomain/resource,其中的node,domain以及resource字段分别标识了用户,用户连接的服务器,以及用户用以连接的资源;而当客户端使用社交网站的账号登录XMPP服务器时,发送登录信息的格式可以为:“账号标识信息社交网站标识”,根据登录信息的格式可以判断出其是否为使用社交网站账号进行登录。当然,发送的登录信息的格式可以有多种只要是区别于在XMPP服务器中注册的账号形式即可,在此不一一列举。

为了更好地理解本发明所述方法的应用过程,参见图2,为本发明另一实施例的方法流程图,该方法包括步骤:

步骤S201:接收客户端通过访问指定的HTTP入口,发出的使用社交网站的账号进行登录的请求,其中,指定的HTTP入口是XMPP服务器为使用某特定社交网站的账号进行登录而设置的;

步骤S202:为所述客户端返回所述社交网站的第三方登录入口,以便用户通过客户端在所述第三方登录入口输入社交网站的账号登录所述社交网站;

步骤S203:当客户端接收到所述社交网站的服务器返回的账号标识信息和数字签名,并以“账号标识信息社交网站标识”作为用户名、数字签名作为登录密码的形式发送登录请求时,接收所述登录请求;

步骤S204:判断所述登录请求中的用户名是否为使用社交网站的账号进行登录的形式,如果是,则进入步骤S205;如果否,进入步骤S206;

步骤S205:根据用户名中的社交网站标识,判定所述社交网站标识归属的社交网站,并根据预先与该社交网站的服务器约定的密钥,将用户名中的账号标识信息生成数字签名,判断生成的数字签名与接收到的数字签名是否匹配,如果是,则建立与所述客户端之间的XMPP连接。

步骤S206:则采用在XMPP服务器中查询保存的用户名和密码进行验证的登录过程。

对应本发明的方法,本发明还提供了一种实现登录XMPP服务器的系统,参见图3,本发明的系统包括:

请求接收模块301,用于接收客户端选择使用某社交网站的账号进行登录的请求;

重定向模块302,用于当请求接收模块接收所述请求后,为所述客户端返回所述社交网站的第三方登录入口,以便用户通过客户端在所述第三方登录入口输入账号登录所述社交网站;

信息接收模块303,用于当客户端接收到所述社交网站的服务器返回的账号访问信息,并将所述社交网站的标识信息和所述账号访问信息作为登录信息发送时,接收所述登录信息,所述账号访问信息包括账号标识信息;

信息判断单元304,用于判定所述社交网站的标识信息归属的社交网站,并根据预先与该社交网站的服务器制定的规则,判断所述账号访问信息是否符合登录条件,如果是,则建立与所述客户端之间的XMPP连接。

其中,所述账号标识信息包括:所述账号的用户标识、所述账号的登录会话标识和/或会话过期时间。

根据客户端发送连接请求所用的方式的不同,请求接收模块包括:

第一请求接收模块,用于接收客户端通过访问指定的HTTP入口,发出的使用社交网站的账号进行登录的请求,其中,指定的HTTP入口是XMPP服务器为使用某特定社交网站的账号进行登录而设置的。

第二请求接收模块,用于接收客户端通过在用户界面上选择使用某社交网站账号登录的选项,发出的登录请求;

在第二请求接收模块接收该请求后,由重定向模块进行相应处理,该情况下,重定向模块包括:第二重定向模块,用于当第二请求接收单元接收登录请求后,通过可扩展标记语言数据流通知客户端需要访问所述社交网站服务器指定的第三方登录入口。

进一步的,所述账号访问信息还包括:社交网站根据预先与XMPP服务器约定的密钥,对所述账号标识信息生成的数字签名。

在账号访问信息包括社交网站的服务器返回的数字签名的情况下,判断账号标识信息是否符合登录提件,可以通过判断数字签名的方式实现,相应的所述信息判断单元包括:信息判断子单元,用于根据预先与该社交网站服务器约定的密钥,将所述客户端发送的账号标识信息生成数字签名,判断该数字签名与所述账号访问信息包含的数字签名是否匹配,如果是,则符合登录条件。

当所述账号标识信息符合登录条件时,XMPP服务器就可以建立与该客户端之间的XMPP连接。与该客户端建立XMPP连接的方式可以有多种,进一步的,信息判断单元包括:

连接建立单元,用于当所述账号标识信息符合登录条件时,查询是否保存有与所述账号相对应的XMPP用户,如果是,则在所述XMPP用户名下,建立与所述客户端之间连接;如果否,则创建一个与所述账号相对应的XMPP用户,并则在所述XMPP用户名下,建立与所述客户端之间连接。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

专 / 利 / 交 / 易 / 流 / 程

安 / 全 / 保 / 障

  • 确保每个项目方信息真实有效;
  • 提供全程贴身服务,专业客服人员全程跟进对接环节;
  • 提供专业的技术交易咨询服务,协助完成签约交易;
  • 提供资金担保服务,确保买方资金安全;
  • 提供交易订单存证数据,协助处理技术交易纠纷。

专 / 利 / 交 / 易 / 常 / 见 / 问 / 题

1、在赋翼网没有找到自己需要的专利怎么办?

答:如果在网站没有找到须要的专利,可联系客服提交自己的需求,工作人员会在十分钟内检索全网专利库,给满意的答复。

2、在赋翼网购买专利安全吗?

答:赋翼网所出售专利均经专利权人本人核实,专利真实有效,请放心购买。

3、购买专利是一次性收费吗? 还有其他的费用吗?

答:在赋翼网购买专利,均为一次性收费(办理期间客户另提其他要求除外)。

4、购买后多久能收到专利证书?

答:跟赋翼网签订合作合同后,工作人员会立刻办理进行手续办理,买专利最快7天下证(根据办理速度不同,具体下证时间以国家知识产权局实际为准)。

5、购买后变更失败怎么办?

答:如遇到付款后未能按照合同约定变更专利权人(含合同约定任何一项没有做到),经核实后赋翼网将在2个工作日内全额退款。

—— 购买专利 ——

信息保护中,请放心填写

推 荐 专 利 更多