一种客户端授权登录网页的方法、系统、服务器及存储介质与流程

文档序号:16311481发布日期:2018-12-19 05:17阅读:375来源:国知局
一种客户端授权登录网页的方法、系统、服务器及存储介质与流程

本发明计算机应用技术领域,具体涉及一种客户端授权登录网页的方法、系统、服务器及存储介质。

背景技术

在现有技术中,用户登录某一网站时,通常需要在该网站上注册登录账号及设置相应的登录密码。用户在a网站注册的帐号只能登录a网站,不可以登录b网站,因此,用户若需要登录多个网站,则需要注册相应的账号,使得用户需要管理多个帐号,给用户造成不便。

若使用授权登录即在同一个公司的许多产品中,如果pc客户端已经登录了,这时打开公司的其他客户端或者网页端,可以不用再输入账号密码,直接登录。然而在实际应用中,用户浏览某个应用时,如果需要使用其他已经登录成功的应用登录身份,针对当前应用进行授权登录,通常要求用户在该应用的登录页面中执行多次操作才能完成登录,交互较复杂。



技术实现要素:

有鉴于此,本发明的目的是提供一种客户端授权登录网页的方法、系统、服务器及存储介质,需要pc客户端、php服务器、web端配合完成。

为了实现上述目的,本发明采用的技术方案为一种客户端授权登录网页的方法,所述方法包括以下步骤:

s1、创建httpserverportrequest对象,向php服务器中pc客户端发送消息,请求获取用于监听httpserver的端口号;

s2、创建httplistener对象,所述对象用于创建http服务器,并根据步骤s1中获得的端口号,调用listen接口直到监听成功为止,并为web端提供接口访问功能;

s3、定义http请求的回调函数,用于当web端发起请求时,自动调用所述回调函数;

s4、根据步骤s3中回调函数,获取web端请求的接口地址,通过所述接口地址连接到pc客户端的http服务器,获取授权登录信息。

在上述技术方案中,向php服务器请求的pc客户端为一组端口号。

在上述技术方案中,所述步骤s3中定义的回调函数为service,所述service回调函数包括httprequest&request和httpresponse&response,所述httprequest&request表示web端请求发送的参数,所述httpresponse&response表示http服务器即将发送给web端的应答消息。

在上述技术方案中,调用所述httpresponse&response对象的getpath接口获取web端请求的接口地址。

在上述技术方案中,所述接口地址包括pcclient/getuserinfo接口,返回给web端当前pc客户端登录用户的头像和昵称数据,提供web端展示授权登录的用户信息;

所述接口地址还包括pcclient/getcode接口,提供了生成授权登录的authcode,然后把authcode置于当前http连接的域名cookie当中。

在上述技术方案中,所述步骤s4中连接到pc客户端的http服务器步骤如下:

s41、创建authorizecoderequest对象向php服务器请求authcode,php服务器会返回根据pc客户端当前登录用户的token、ip等数据生成的授权登录的authcode;

s42、pc客户端接收到授权登录的authcode后,创建httpcookie对象,然后调用setname接口设置cookie的名字为pc_auth_code字符串;调用setvalue接口设置cookie的值为接收到的authcode;

s43、调用setcookie接口,把httpcookie对象设置进当前http连接的域名下的cookie当中。

在上述技术方案中,所述步骤s4中授权登录的步骤如下:

s431、pc客户端设置cookie后,通过pcclient/getcode接口的返回数据通知web端cookie的authcode数据设置成功,进行授权登录;

s432、web端接收到pc客户端成功的通知后,请求php服务器的loginnew接口向php服务器请求完成授权登录功能;

s433、php服务器接收到web端的loginnew接口请求时,获取pc客户端设置的cookie数据,然后取出authcode数据进行数据校验,完成web端授权登录功能。

本发明还公开一种客户端授权登录网页系统,所述系统包括创建模块、监听模块、定义模块、登录模块;

所述创建模块,用于创建httpserverportrequest对象,向php服务器中pc客户端发送消息,请求获取监听httpserver的端口号;

所述监听模块,用于创建httplistener对象,所述对象用于创建http服务器,并根据创建模块中获得的端口号,调用listen接口直到监听成功为止,并为web端提供接口访问功能;

所述定义模块,用于定义http请求的回调函数,用于当web端发起请求时,自动调用所述回调函数;

所述授权模块,用于根据定义模块中回调函数,获取web端请求的接口地址,通过所述接口地址连接到pc客户端的http服务器,获取授权登录信息。

本发明还公开一种客户端授权登录网页系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述一种客户端授权登录网页的方法的步骤。

本发明还公开一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述一种客户端授权登录网页的方法的步骤。

本发明一种客户端授权登录网页的方法、系统、服务器及存储介质,具有以下有益效果:在同一个公司的多种产品中,若pc客户端已经登录,如果打开其他网页端,用户可不用输入账号密码,直接授权登录一键完成,使得操作更加简便,提高了用户的产品体验。

附图说明

图1为本发明实施例一提供一种客户端授权登录网页的方法的流程图;

图2为本发明实施例二提供一种客户端授权登录网页系统模块图;

图3为本发明实施例三提供的服务器的结构示意图。

具体实施方式

本发明提供一种客户端授权登录网页的方法、系统、服务器及存储介质,pc客户端从php服务器获取一组httpserver的监听端口,然后创建本地http服务器,web端从php服务器获取一组httpserver的监听端口,然后连接到pc客户端的本地http服务器,获取授权登录信息。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明如图1所示实施例一提供一种客户端授权登录网页的方法,所述方法包括以下步骤:

s1、创建httpserverportrequest对象,向php服务器中pc客户端发送消息,请求获取用于监听httpserver的端口号;

其中,向php服务器请求的pc客户端为一组端口号,如果pc客户端采用一个固定的端口号监听,若此端口号被其他程序占用,就会导致监听失败,造成web端连接失败。若向php服务器请求一组端口号,pc客户端在一组端口号中依次监听,直到监听成功。

所述http是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统,客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有get、head、post。每种方法规定了客户与服务器联系的类型不同。由于http协议简单,使得http服务器的程序规模小,因而通信速度很快,http允许传输任意类型的数据对象。所述httpserver是一个简单的零配置命令行http服务器。

http协议的主要特点包括支持客户/服务器模式;客户向服务器请求服务时,只需传送请求方法和路径;请求方法常用的有get、head、post。每种方法规定了客户与服务器联系的类型不同。由于http协议简单,使得http服务器的程序规模小,因而通信速度很快;http允许传输任意类型的数据对象。正在传输的类型由content-type加以标记;无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。http协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

所述php是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用c,java和perl语言的语法,并耦合php自己的特性,使web开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库。服务器web:把提供(响应)服务的计算机称作服务器(server),也叫服务器端。客户web:接受(请求)服务的计算机称作客户机(client),也叫客户端。

php的运行原理就是apache、php、浏览器之间的协作过程:

当用户在浏览器地址中输入要访问的php页面文件名,然后回车就会触发这个php请求,并将请求传送化支持php的web服务器(apache)。

web服务器(apache)接受这个请求,并根据其后缀进行判断如果是一个php请求,web服务器(apache)从硬盘或内存中取出用户要访问的php应用程序,并将其发送给php引擎程序。

php引擎程序将会对web服务器(apache)传送过来的文件从头到尾进行扫描并根据命令从后台读取,处理数据,并动态地生成相应的html页面。

php引擎将生成html页面返回给web服务器(apache)。web服务器(apache)再将html页面返回给客户端浏览器,最后一个完整的页面基于通过浏览器展现在我们眼前。

所述apachehttpserver(简称apache)是apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的web服务器端软件之一。它快速、可靠并且可通过简单的api扩展,将perl/python等解释器编译到服务器中。apachehttp服务器是一个模块化的服务器,源于ncsahttpd服务器,经过多次修改,成为世界使用排名第一的web服务器软件。

s2、创建httplistener对象,所述对象用于创建http服务器,并根据步骤s1中获得的端口号,调用listen接口直到监听成功为止,并为web端提供接口访问功能;

所述httplistener提供一个简单的、可通过编程方式控制的http协议侦听器。通过它可以很容易的提供一些http服务,而无需启动iis这类大型服务程序。所述web端为电脑端的网页版。

s3、定义http请求的回调函数,用于当web端发起请求时,自动调用所述回调函数;

可选的,所述定义的回调函数需通过调用步骤s2中创建的httplistener对象的registerservice接口进行注册。

所述回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,这就是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。回调可用于通知机制。回调函数是应用程序提供给windows系统dll或其它dll调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉dll,而dll在适当的时候会调用该函数。回调函数必须遵守事先规定好的参数格式和传递方式,否则dll一调用它就会引起程序或系统的崩溃。

其中,所述步骤s3中定义的回调函数为service,所述service回调函数包括httprequest&request和httpresponse&response,所述httprequest&request表示web端请求发送的参数,所述httpresponse&response表示http服务器即将发送给web端的应答消息。

所述httprequest使asp.net能够读取客户端在web请求期间发送的http值。httprequest的实例包含了所有来自客户端的所有数据,可以把这些数据看成是输入数据,handler以及module就相当于是处理过程,httpresponse就是输出了。

在httprequest包含的所有输入数据中,有我们经常使用的querystring,form,cookie,它还允许我们访问一些http请求、浏览器的相关信息、请求映射的相关文件路径、url详细信息、请求的方法、请求是否已经过身份验证,是否为ssl等等。

httprequest为可扩展超文本传输请求。它为客户端提供了在客户端和服务器之间传输数据的功能。它提供了一个通过url来获取数据的简单方式,并且不会使整个页面刷新。这使得网页只更新一部分页面而不会打扰到用户。

httpresponse是向客户端返回结果。而所有需要向客户端返回的操作都要调用httpresponse。它提供的功能集中在操作http响应部分。

httprequest类是一个封闭http提交信息的类型,而封闭http输出信息的类型就是httpresponse类,使用httpresponse类可以实现三种类型的输出,即文本,url,二进制流。所述文本的输出,在日常开发中,后台中的文本可能需要输出到浏览器中,让用户浏览,这就需要实现动态html的输出。所述url的输出,程序开发经常需要根据情况将用户浏览的界面重定向到其他页面。所述二进制流,有时需要将服务器上的文件提供给用户下载,或者在浏览器端动态生成一幅图片。

s4、根据步骤s3中回调函数,获取web端请求的接口地址,通过所述接口地址连接到pc客户端的http服务器,获取授权登录信息。

可选的,调用所述httpresponse对象的getpath接口获取web端请求的接口地址;

所述getpath为返回定义时的路径。

可选的,所述接口地址包括pcclient/getuserinfo接口,返回给web端当前pc客户端登录用户的头像和昵称数据,提供web端展示授权登录的用户信息;

所述接口地址还包括pcclient/getcode接口,提供了生成授权登录的authcode,然后把authcode置于当前http连接的域名cookie当中。

所述authcode为授权登录密码,所述cookie是由http服务器设置的,保存在浏览器中,但http协议是一种无状态协议,在数据交换完毕后,服务器端和客户端的链接就会关闭,每次交换数据都需要建立新的链接,cookie分为会话cookie和持久cookie,会话cookie是指在不设定它的生命周期expires时的状态,前面说了,浏览器的开启到关闭就是一次会话,当关闭浏览器时,会话cookie就会跟随浏览器而销毁。当关闭一个页面时,不影响会话cookie的销毁。持久cookie则是设定了它的生命周期expires,关闭浏览器之后,它不会销毁,直到设定的过期时间。对于持久cookie,可以在同一个浏览器中传递数据,比如,你在打开一个淘宝页面登录后,你在点开一个商品页面,依然是登录状态,即便你关闭了浏览器,再次开启浏览器,依然会是登录状态。这就是因为cookie自动将数据传送到服务器端,在反馈回来的结果。

其中,所述步骤s4中连接到pc客户端的http服务器步骤如下:

s41、创建authorizecoderequest对象向php服务器请求authcode,php服务器会返回根据pc客户端当前登录用户的token、ip等数据生成的授权登录的authcode;

resourceserver(资源服务器):负责存放服务提供商的用户数据资源等相关信息。当第三方应用访问这个资源服务器时,需要提供accesstoken否则会提示访问失败。authorizationserver(验证授权服务器):负责验证用户账户名密码,以及给第三方web应用发放accesstoken。

s42、pc客户端接收到授权登录的authcode后,创建httpcookie对象,然后调用setname接口设置cookie的名字为pc_auth_code字符串;调用setvalue接口设置cookie的值为接收到的authcode;

所述httpcookies分为sessioncookies和persistentcookies两种。

其中,所述sessioncookies为服务器在应答头中发送给客户端一个设置特定字段set-cookie的数据(各种不同的字段有好几百种),客户端在请求头中回应给服务器端一个cookie数据。之后每次客户端在请求时都会加上这个cookie从而让服务端来识别跟踪用户。sessioncookies的特点是不包含过期时间,而且数据只存在内存当中。所以会话关闭就永久的丢失了。这个值而且是个动态的值,新打开一个浏览器窗口cookies的值可能都不同。

所述persistentcookies数据包含一个过期时间,保存在客户端的硬盘上。一旦过期,数据会从硬盘上移除。persistentcookies主要包含一些认证信息(用户名和密码)还有一些个人的偏好设置。

s43、调用setcookie接口,把httpcookie对象设置进当前http连接的域名下的cookie当中。

其中,所述步骤s4中授权登录的步骤如下:

s431、pc客户端设置cookie后,通过pcclient/getcode接口的返回数据通知web端cookie的authcode数据设置成功,进行授权登录;

s432、web端接收到pc客户端成功的通知后,请求php服务器的loginnew接口向php服务器请求完成授权登录功能;

s433、php服务器接收到web端的loginnew接口请求时,获取pc客户端设置的cookie数据,然后取出authcode数据进行数据校验,完成web端授权登录功能。

本发明如图2所示实施例二提供一种客户端授权登录网页系统,其特征在于,所述系统包括创建模块、监听模块、定义模块、登录模块;

所述创建模块,用于创建httpserverportrequest对象,向php服务器中pc客户端发送消息,请求获取监听httpserver的端口号;

所述监听模块,用于创建httplistener对象,所述对象用于创建http服务器,并根据创建模块中获得的端口号,调用listen接口直到监听成功为止,并为web端提供接口访问功能;

所述定义模块,用于定义http请求的回调函数,用于当web端发起请求时,自动调用所述回调函数;

所述授权模块,用于根据定义模块中回调函数,获取web端请求的接口地址,通过所述接口地址连接到pc客户端的http服务器,获取授权登录信息。

本发明如图3所示实施例三提供一种客户端授权登录网页系统的服务器结构示意图,所述实施例的服务器包括:处理器30、存储器31以及存储在所述存储器31中并可在所述处理器30上运行的计算机程序32。所述处理器30执行所述计算机程序32时实现上述各方法实施例中的步骤,所述处理器30执行所述计算机程序32时实现上述装置实施例中各模块的功能。

所述一种客户端授权登录网页系统的服务器可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备,所述一种客户端授权登录网页系统的服务器可包括,但不限于,处理器30、存储器31。图3仅仅是对此服务器的示例,并不构成对此服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,所述一种直播房间列表下拉获取更多房间实现系统的服务器还可以包括输入输出设备33、显示设备34等。

所述处理器30可以是中央处理单元,还可以是其他通用处理器、数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器31可以是所述一种客户端授权登录网页系统的服务器的内部存储单元、硬盘或内存。所述存储器31也可以是所述服务器的外部存储设备,或配备的插接式硬盘,智能存储卡,安全数字卡,闪存卡等。

进一步地,所述存储器31还可以既包括所述服务器的内部存储单元也包括外部存储设备。所述存储器31用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。

所述的输入输出设备33可用于接收输入的数字或字符信息,具体的,输入输出设备33还可以包括但不限于键盘、鼠标、操作杆等中的一种和多种。

所述的显示设备34可用于显示由用户输入的信息或提供给用户信息以及终端的各种菜单,显示设备34可包括显示面板,可选的,可采用液晶显示器。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1