CN112015383A - 一种登录方法和装置 - Google Patents

一种登录方法和装置 Download PDF

Info

Publication number
CN112015383A
CN112015383A CN201910452009.9A CN201910452009A CN112015383A CN 112015383 A CN112015383 A CN 112015383A CN 201910452009 A CN201910452009 A CN 201910452009A CN 112015383 A CN112015383 A CN 112015383A
Authority
CN
China
Prior art keywords
login
request
address information
response message
request message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910452009.9A
Other languages
English (en)
Inventor
马喜鹏
何小锋
刘海锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910452009.9A priority Critical patent/CN112015383A/zh
Publication of CN112015383A publication Critical patent/CN112015383A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种登录方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:拦截请求消息以及与请求消息相对应的响应消息;根据预定义的登录判断规则,以及响应消息中的状态码,判断用户是否登录;其中,登录判断规则中设置有状态码和状态码代表的含义;在用户未登录的情况下,从响应消息中获取登录地址信息,以基于登录地址信息进行登录。该方法中客户端在拦截请求消息和对应的响应消息后,基于设定的登录判断规则和响应消息,判定用户未登录时,从响应消息中获取登录地址信息,进而完成登录。该方法实现了一种灵活的登录方式,客户端只需进行好登录拦截,无需关心使用哪个地址登录。

Description

一种登录方法和装置
技术领域
本发明涉及计算机领域,尤其涉及一种登录方法和装置。
背景技术
目前大多数的应用程序采用客户端、服务端分离的方式进行开发,客户端使用Vue、React等技术,服务端提供接口。在应用程序中,用户登录是最基本的功能,现有技术一般都只从服务端(也称为后端)或者客户端进行登录处理。从服务端进行登录处理的实现原理为:服务端配置***,拦截所有的页面请求,判断页面请求中是否有登录标识,如果没有,自动跳转到登录页面;如果有,继续完成页面请求。从客户端进行登录处理的实现原理为:由客户端在首次打开的页面中判断是否存在cookie,如果存在,则不做处理;如果不存在,则跳转到登录页面。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
(1)从服务端进行登录处理的方式,只适用于服务端渲染或者客户端、服务端不分离的情况,而在客户端、服务端分离的大环境下,该方式由于客户端服务的阻隔或者客户端ajax的原因,会导致无法跳转到登录页面。
(2)从客户端进行登录处理的方式,需要在页面中判断是否存在cookie才进行下一步的请求,容易造成cookie被伪造,容易暴露cookie解析规则,安全性低;另外,该方式的登录配置灵活性差,在测试环境和线下环境需要经常修改登录配置,如果修改错误会导致上线失败。
发明内容
有鉴于此,本发明实施例提供一种登录方法和装置,客户端拦截请求消息和对应的响应消息后,基于设定的登录判断规则和响应消息,判定用户未登录时,从响应消息中获取登录地址信息,进而完成登录。本发明实施例实现了一种灵活的登录方式,客户端只需进行登录拦截,无需关心使用哪个地址登录。
为实现上述目的,根据本发明实施例的一个方面,提供了一种登录方法。
本发明实施例的一种登录方法,包括:拦截请求消息以及与所述请求消息相对应的响应消息;根据预定义的登录判断规则,以及所述响应消息中的状态码,判断用户是否登录;其中,所述登录判断规则中设置有状态码和所述状态码代表的含义;在所述用户未登录的情况下,从所述响应消息中获取登录地址信息,以基于所述登录地址信息进行登录。
可选地,所述方法还包括:将所述请求消息封装为公共请求类;分别定义与服务端接口相对应的方法,根据所述服务端接口的请求类型,将所述服务端接口的地址信息封装到所述方法中;将封装结果传递到所述公共请求类,并输出所述方法的方法名称。
可选地,所述将所述请求消息封装为公共请求类,包括:创建实例对象,输出所述实例对象;使用请求***拦截所述请求消息,在所述请求消息中增加公共的头部信息;使用响应***拦截与所述请求消息相对应的响应消息,对所述响应消息进行处理。
可选地,所述基于所述登录地址信息进行登录,包括:将所述登录地址信息和所述请求信息对应的当前地址信息进行拼接,按照拼接后的地址信息进行跳转登录。
可选地,所述从所述响应消息中获取登录地址信息,包括:从所述响应消息的头部信息中获取登录地址信息;其中,所述头部信息中包括由服务端提供的所述登录地址信息。
为实现上述目的,根据本发明实施例的另一方面,提供了一种登录装置。
本发明实施例的一种登录装置,包括:拦截模块,用于拦截请求消息以及与所述请求消息相对应的响应消息;判断模块,用于根据预定义的登录判断规则,以及所述响应消息中的状态码,判断用户是否登录;其中,所述登录判断规则中设置有状态码和所述状态码代表的含义;登录模块,用于在所述用户未登录的情况下,从所述响应消息中获取登录地址信息,以基于所述登录地址信息进行登录。
可选地,所述装置还包括:封装模块,用于将所述请求消息封装为公共请求类;分别定义与服务端接口相对应的方法,根据所述服务端接口的请求类型,将所述服务端接口的地址信息封装到所述方法中;以及将封装结果传递到所述公共请求类,并输出所述方法的方法名称。
可选地,所述封装模块,还用于:创建实例对象,输出所述实例对象;使用请求***拦截所述请求消息,在所述请求消息中增加公共的头部信息;使用响应***拦截与所述请求消息相对应的响应消息,对所述响应消息进行处理。
可选地,所述登录模块,还用于:将所述登录地址信息和所述请求信息对应的当前地址信息进行拼接,按照拼接后的地址信息进行跳转登录。
可选地,所述判断模块,还用于:从所述响应消息的头部信息中获取登录地址信息;其中,所述头部信息中包括由服务端提供的所述登录地址信息。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种登录方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种登录方法。
上述发明中的一个实施例具有如下优点或有益效果:客户端拦截请求消息和对应的响应消息后,基于设定的登录判断规则和响应消息判定用户未登录时,从响应消息中获取登录地址信息,进而完成登录,实现了一种灵活的登录方式,客户端只需进行登录拦截,无需关心使用哪个地址登录;通过统一的登录判断规则,结合状态码进行登录判断,无需判断cookie是否存在,防止了cookie伪造等问题,进一步提高了客户端的灵活性;通过二次封装的方式,将请求消息统一封装成公共请求类,将服务端接口统一封装成客户端API,实现了对请求消息和响应消息的统一处理,减少了重复代码工作量,轻松实现登录拦截。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的登录方法的主要步骤的示意图;
图2是根据本发明实施例的登录方法的主要原理示意图;
图3是根据本发明实施例的登录方法的主要流程示意图;
图4是根据本发明实施例的登录装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性***架构图;
图6是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面对本发明实施例中涉及到的术语进行解释说明。
前端:与用户进行直接交互的网页或者界面,是客户端的一种。
客户端:可以向服务端发起请求的一方,比如一款APP(Application)。
后端或者服务端:能够响应客户端请求的一方,比如云服务器。
Vue:是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。
React:是Facebook推出的一个用来构建用户界面的JavaScript库。
JavaScript:是一种直译式脚本语言,缩写JS,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
cookie:是指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据。
ajax:即Asynchronous Javascript And XML(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
XML:即Extensible Markup Language(可扩展标记语言),是一种用于标记电子文件,使其具有结构性的标记语言。
axios:是一个基于promise(承诺),可以用于浏览器和node.js(是一个Javascript运行环境)中http客户端,能够完成ajax异步请求。
url:即Uniform Resource Locator(统一资源定位符),是互联网上标准资源的地址。
图1是根据本发明实施例的登录方法的主要步骤的示意图。如图1所示,本发明实施例的登录方法,主要包括如下步骤:
步骤S101:拦截请求消息以及与所述请求消息相对应的响应消息。预先将请求消息封装为公共请求类,具体为:在该公共请求类中创建实例对象;使用请求***拦截客户端发送的至少一个请求消息,对请求消息进行统一处理;使用响应***拦截服务端返回的与请求消息相对应的响应消息,对响应消息进行统一处理。后续客户端即可通过调用请求***拦截请求消息,通过响应***拦截响应消息。
步骤S102:根据预定义的登录判断规则以及所述响应消息中的状态码,判断用户是否登录。客户端和服务端统一登录判断规则,该规则中设置有状态码和各状态码对应的含义,比如定义状态码401,代表用户未登录。服务端在用户未登录的情况下,在响应消息的头部信息中增加登录地址信息;客户端在拦截到响应消息后,即可根据登录判断规则和响应消息中的状态码,判定用户是否登录。
步骤S103:在所述用户未登录的情况下,从所述响应消息中获取登录地址信息,以基于所述登录地址信息进行登录。预先将服务端请求的接口进行封装,具体为:分别定义与服务端接口相对应的方法,根据服务端接口的请求类型,将服务端接口的地址信息封装到方法中;将封装结果传递到公共请求类,输出方法的方法名称。后续如果客户端判定用户未登录,且已经获取了登录地址信息后,客户端即可以通过方法名称调用相应方法,以将登录地址信息和用户当前访问的地址栏的地址信息进行拼接,之后按照拼接后的地址信息进行跳转登录。
图2是根据本发明实施例的登录方法的主要原理示意图。如图2所示,为了实现本发明目的,客户端(实施例中为前端)进行了多层处理,包括页面视图(view)层、公共处理层、应用程序接口层。
页面视图层,包含所有的请求消息,该层用于发送页面的请求消息,以及进行页面渲染。
公共处理层,包含了自定义的request请求,实施例中为requestJS,该层用于使用请求***拦截请求消息,汇总并统一处理页面所有的请求消息后,输出至应用程序接口层;使用响应***拦截来自应用程序接口层的响应消息,汇总并统一处理所有的响应消息。实施例中采用二次封装的方式,实现对所有消息的统一处理。
应用程序接口层,用于封装所有的服务端接口,并给页面视图层暴露一个方法名。这样做的好处是可以对服务端所有的接口进行统一管理,如果服务端接口的url变动,则只需更改该层对应的文件属性即可,不用大面积的更改页面的请求消息,减少客户端重复请求及重复代码。应用程序接口层还用于在接收到请求消息后,通过相应接口将请求消息发送至当前与客户端建立有http连接的服务端;该接口在接收到来自服务端的对于该请求消息的响应消息后,将其发送至响应***。
图3是根据本发明实施例的登录方法的主要流程示意图。如图3所示,本发明实施例的登录方法,主要包括如下步骤:
步骤S301:公共处理层将来自于目标页面的所有对于服务端数据的请求消息封装成公共请求类。实施例中以Vue工程的单页面为例,客户端和服务端的所有信息交互均是axios请求消息,将axios请求消息封装为公共请求类(requestJS)的具体实现为:(1)创建一个axios实例对象,该实例对象名称为axiosService,之后输出(export)该实例对象;(2)利用interceptors.request.use方法(即请求***)实现对所有axios请求消息的拦截,并对拦截到的axios请求消息进行处理;此处的处理可以是增加公共的头部信息,比如token(令牌)、时间戳等;(3)利用interceptors.response.use方法(即响应***)拦截服务端返回的与axios请求消息相对应的响应消息,对响应消息进行统一处理。
实施例中,对响应消息的统一处理主要包括:
(1)将响应消息的头部信息(headers)中applicationprofile属性数据对应的值存在客户端缓存中。
(2)对响应消息的headers中content-type(内容类型)的值为application/properties的数据进行特殊处理,即直接返回给页面调用程序,这里返回一个promise对象。
(3)对其他数据:判断状态码(code)是否等于200,如果等于200,则将数据中的data值返回给页面调用程序;如果不等于200,则将数据中的message返回给页面调用程序,这里返回一个promise对象。
(4)对错误数据的处理:如果code等于401,则尝试获取header中location字段里的跳转路径(该路径为登录地址信息,该登录地址信息可以是登录页面或者登录窗口的url),以进行跳转;如果code等于404,则跳转到错误(error)页面。
步骤S302:应用程序接口层分别定义与至少一个服务端接口相对应的方法,根据服务端接口的请求类型,将服务端接口的地址信息封装到方法中。这里只是定义一个接口输入和输出的标准。实施例中,对于接口输入的标准可以只关心调用的方法名称,无需关心请求的url具体是什么,如果服务端接口的url一旦变更,只需要更改方法内部的url即可,不必去更改每个页面的axios请求消息,大大减少了代码重复量。对于接口输入的标准可以是统一输出一个promise对象。
下面对如何定义与服务端接口相对应的方法进行举例说明:
比如,服务端接口为:v1/application/appId
客户端封装的接口为:
export function getApp(appId){
return request({
url:baseUrl+'v1/application/'+appId,
method:'get'
})
}
再比如,服务端接口为:v1/applications/search
客户端封装的接口为:
export function searchApps(params){
let url=baseUrl+'v1/applications/search?'
for(let key in params){
url+=key+"="+params[key]+"&"
}
url=url.substring(0,url.length-1);
return request({
url:url,
method:'get'
})
}
下面对如何根据服务端接口的请求类型,将服务端接口的地址信息封装到方法中进行举例说明:
比如,对于get类型的请求,拼接对应的url,并在url后面拼接传入的参数。假设传入的参数为对象{a:1,b:2},封装时会将传入的参数与服务端的url结合起来处理成如下格式:http://xxx.jd.com/v1/xx/ge t?a=1&b=2。
再比如,对于post、delete、put类型的请求,传入的参数是放在数据(data)中的,故只需拼接对应的url即可,不对传入的参数做特殊处理。例如delete:http://xxx.jd.com/v1/xx/delete/:id,id就是传入的参数。
步骤S303:应用程序接口层将封装结果传递到公共请求类,并输出方法的方法名称。应用程序接口层对于Vue页面只暴露一个方法名称,比如getApp、searchApps,Vue页面调用的时候,只需要按照要求传入参数,即可输出promise对象。实施例中,应用程序接口层将处理好的url、参数、其他需要处理的头部信息等传递给requestJS,并输出(export)这些方法名称,以将这些方法名称提供给页面视图层,使得页面视图层能够直接调用这些方法。
步骤S304:页面视图层调用应用程序接口层的方法名称,以通过公共处理层拦截来自于目标页面的所有请求消息,以及服务端返回的与请求消息相对应的响应消息。服务端在接收到客户端发送的请求消息后,会返回对应的响应消息。公共处理层通过请求***拦截来自于目标页面的所有请求消息,通过响应***拦截服务端返回的与请求消息相对应的响应消息。实施例中,公共处理层在拦截到请求消息后,基于预先建立的http连接获取到与请求消息相匹配的响应消息。
步骤S305:公共处理层根据预定义的登录判断规则以及响应消息中的状态码,判断用户是否登录该目标页面,如果用户已登录该目标页面,则执行步骤S306;如果用户未登录该目标页面,则执行步骤S307。由于页面是通过Vue渲染的,而非是服务端渲染,在判断用户是否登录该目标页面时,现有技术中会采用cookie的方式,但是此方式容易造成恶意的cookie伪造攻击。本实施例中通过客户端与服务端合作的方式,即通过统一登录判断规则的方式来判断用户是否登录该目标页面,该规则中指定了表示用户未登录目标页面时对应的状态码。如果用户未登录该目标页面,服务端会返回该特定的状态码以及相应登录页面或登录窗口的url,客户端即可无需关心用户去哪个页面登录的问题。比如,客户端与服务端预先规定,当状态码为401时,表示用户未登录,这时,响应消息的头部信息中必然包含location字段,该字段用于存储登录页面或登录窗口的url(由服务端定义并存储,以便随时更换不同的环境及***);状态码为其他值时,相应表示其他含义。
步骤S306:页面视图层对该目标页面进行页面渲染,以显示页面内容。
步骤S307:公共处理层从响应消息中获取登录地址信息,将登录地址信息和目标页面的地址信息进行拼接,以按照拼接后的地址信息跳转到登录页面或登录窗口。如果状态码为401,表示用户未登录该目标页面,需要客户端跳转到登录页面或登录窗口。由于服务端有测试、开发、线上三套***,各个***的登录页面或登录窗口的网址不同,所以客户端需要从服务端给的header获取,这样能极大的提高客户端的灵活性。实施例中,公共处理层从响应消息的header中包含的location字段中获取登录页面或登录窗口的url。目标页面的地址信息即用户当前访问的页面地址栏的url。实施例中,将两个地址信息拼接的过程可以为:const returnUrl=errorresponse.headers.location+"?ReturnUrl="+nowUrl;其中,location字段的信息即登录页面的url,比如为:http://xxx.jd.com;nowUrl是通过JS获取的用户当前访问的页面地址栏的url,比如为:http://abc.jd.com;则拼接完成后得到的url为:http://xxx.jd.com?ReturnUrl=http://abc.jd.com。之后,按照该拼接后的地址,利用客户端的location.href方法,即可完成由用户当前访问的目标页面到登录页面或登录窗口的跳转。
通过本发明实施例的登录方法可以看出,客户端拦截请求消息和对应的响应消息后,基于设定的登录判断规则和响应消息判定用户未登录时,从响应消息中获取登录地址信息,进而完成登录,实现了一种灵活的登录方式,客户端只需进行登录拦截,无需关心使用哪个地址登录;通过统一的登录判断规则,结合状态码进行登录判断,无需判断cookie是否存在,防止了cookie伪造等问题,进一步提高了客户端的灵活性;通过二次封装的方式,将请求消息统一封装成公共请求类,将服务端接口统一封装成客户端API,实现了对请求消息和响应消息的统一处理,减少了重复代码工作量,轻松实现登录拦截。
图4是根据本发明实施例的登录装置的主要模块的示意图。如图4所示,本发明实施例的登录装置400,主要包括:
拦截模块401,用于拦截请求消息以及与所述请求消息相对应的响应消息。预先将请求消息封装为公共请求类,具体为:在该公共请求类中创建实例对象;使用请求***拦截客户端发送的至少一个请求消息,对请求消息进行统一处理;使用响应***拦截服务端返回的与请求消息相对应的响应消息,对响应消息进行统一处理。后续客户端即可通过调用请求***拦截请求消息,通过响应***拦截响应消息。
判断模块402,用于根据预定义的登录判断规则以及所述响应消息中的状态码,判断用户是否登录。客户端和服务端统一登录判断规则,该规则中设置有状态码和各状态码对应的含义,比如定义状态码401,代表用户未登录。服务端在用户未登录的情况下,在响应消息的头部信息中增加登录地址信息;客户端在拦截到响应消息后,即可根据登录判断规则和响应消息中的状态码,判定用户是否登录。
登录模块403,用于在所述用户未登录的情况下,从所述响应消息中获取登录地址信息,以基于所述登录地址信息进行登录。预先将服务端请求的接口进行封装,具体为:分别定义与服务端接口相对应的方法,根据服务端接口的请求类型,将服务端接口的地址信息封装到方法中;将封装结果传递到公共请求类,输出方法的方法名称。后续如果客户端判定用户未登录,且已经获取了登录地址信息后,客户端即可以通过方法名称调用相应方法,以将登录地址信息和用户当前访问的地址栏的地址信息进行拼接,之后按照拼接后的地址信息进行跳转登录。
另外,本发明实施例的登录装置400还可以包括:封装模块(图4中未示出),该模块用于将所述请求消息封装为公共请求类;分别定义与服务端接口相对应的方法,根据所述服务端接口的请求类型,将所述服务端接口的地址信息封装到所述方法中;以及将封装结果传递到所述公共请求类,并输出所述方法的方法名称。
从以上描述可以看出,客户端拦截请求消息和对应的响应消息后,基于设定的登录判断规则和响应消息判定用户未登录时,从响应消息中获取登录地址信息,进而完成登录,实现了一种灵活的登录方式,客户端只需进行登录拦截,无需关心使用哪个地址登录;通过统一的登录判断规则,结合状态码进行登录判断,无需判断cookie是否存在,防止了cookie伪造等问题,进一步提高了客户端的灵活性;通过二次封装的方式,将请求消息统一封装成公共请求类,将服务端接口统一封装成客户端API,实现了对请求消息和响应消息的统一处理,减少了重复代码工作量,轻松实现登录拦截。
图5示出了可以应用本发明实施例的登录方法或登录装置的示例性***架构500。
如图5所示,***架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所发送的请求消息提供响应的后台管理服务器。后台管理服务器可以对接收到的请求信息进行分析等处理,并将处理结果(例如响应信息)反馈给终端设备。
需要说明的是,本申请实施例所提供的登录方法一般由终端设备501、502、503上的前端执行,相应地,登录装置一般设置于终端设备501、502、503上的前端中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种登录方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种登录方法。
下面参考图6,其示出了适用于来实现本发明实施例的电子设备的计算机***600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有计算机***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括拦截模块、判断模块和登录模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,拦截模块还可以被描述为“拦截请求消息以及与所述请求消息相对应的响应消息的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:拦截请求消息以及与所述请求消息相对应的响应消息;根据预定义的登录判断规则,以及所述响应消息中的状态码,判断用户是否登录;其中,所述登录判断规则中设置有状态码和所述状态码代表的含义;在所述用户未登录的情况下,从所述响应消息中获取登录地址信息,以基于所述登录地址信息进行登录。
从以上描述可以看出,客户端拦截请求消息和对应的响应消息后,基于设定的登录判断规则和响应消息判定用户未登录时,从响应消息中获取登录地址信息,进而完成登录,实现了一种灵活的登录方式,客户端只需进行登录拦截,无需关心使用哪个地址登录;通过统一的登录判断规则,结合状态码进行登录判断,无需判断cookie是否存在,防止了cookie伪造等问题,进一步提高了客户端的灵活性。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (12)

1.一种登录方法,其特征在于,包括:
拦截请求消息以及与所述请求消息相对应的响应消息;
根据预定义的登录判断规则,以及所述响应消息中的状态码,判断用户是否登录;其中,所述登录判断规则中设置有状态码和所述状态码代表的含义;
在所述用户未登录的情况下,从所述响应消息中获取登录地址信息,以基于所述登录地址信息进行登录。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述请求消息封装为公共请求类;
分别定义与服务端接口相对应的方法,根据所述服务端接口的请求类型,将所述服务端接口的地址信息封装到所述方法中;
将封装结果传递到所述公共请求类,并输出所述方法的方法名称。
3.根据权利要求2所述的方法,其特征在于,所述将所述请求消息封装为公共请求类,包括:
创建实例对象,输出所述实例对象;
使用请求***拦截所述请求消息,在所述请求消息中增加公共的头部信息;
使用响应***拦截与所述请求消息相对应的响应消息,对所述响应消息进行处理。
4.根据权利要求1所述的方法,其特征在于,所述基于所述登录地址信息进行登录,包括:
将所述登录地址信息和所述请求信息对应的当前地址信息进行拼接,按照拼接后的地址信息进行跳转登录。
5.根据权利要求1所述的方法,其特征在于,所述从所述响应消息中获取登录地址信息,包括:从所述响应消息的头部信息中获取登录地址信息;其中,所述头部信息中包括由服务端提供的所述登录地址信息。
6.一种登录装置,其特征在于,包括:
拦截模块,用于拦截请求消息以及与所述请求消息相对应的响应消息;
判断模块,用于根据预定义的登录判断规则,以及所述响应消息中的状态码,判断用户是否登录;其中,所述登录判断规则中设置有状态码和所述状态码代表的含义;
登录模块,用于在所述用户未登录的情况下,从所述响应消息中获取登录地址信息,以基于所述登录地址信息进行登录。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:封装模块,用于
将所述请求消息封装为公共请求类;
分别定义与服务端接口相对应的方法,根据所述服务端接口的请求类型,将所述服务端接口的地址信息封装到所述方法中;以及
将封装结果传递到所述公共请求类,并输出所述方法的方法名称。
8.根据权利要求7所述的装置,其特征在于,所述封装模块,还用于:
创建实例对象,输出所述实例对象;
使用请求***拦截所述请求消息,在所述请求消息中增加公共的头部信息;
使用响应***拦截与所述请求消息相对应的响应消息,对所述响应消息进行处理。
9.根据权利要求6所述的装置,其特征在于,所述登录模块,还用于:将所述登录地址信息和所述请求信息对应的当前地址信息进行拼接,按照拼接后的地址信息进行跳转登录。
10.根据权利要求6所述的装置,其特征在于,所述判断模块,还用于:从所述响应消息的头部信息中获取登录地址信息;其中,所述头部信息中包括由服务端提供的所述登录地址信息。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN201910452009.9A 2019-05-28 2019-05-28 一种登录方法和装置 Pending CN112015383A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910452009.9A CN112015383A (zh) 2019-05-28 2019-05-28 一种登录方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910452009.9A CN112015383A (zh) 2019-05-28 2019-05-28 一种登录方法和装置

Publications (1)

Publication Number Publication Date
CN112015383A true CN112015383A (zh) 2020-12-01

Family

ID=73501602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910452009.9A Pending CN112015383A (zh) 2019-05-28 2019-05-28 一种登录方法和装置

Country Status (1)

Country Link
CN (1) CN112015383A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905160A (zh) * 2021-02-08 2021-06-04 中国工商银行股份有限公司 一种基于axios的封装注册全局拦截方法及装置
CN114172896A (zh) * 2021-12-08 2022-03-11 深圳前海环融联易信息科技服务有限公司 前端接收后端文件流的处理方法
CN116112558A (zh) * 2022-11-21 2023-05-12 上海浦东发展银行股份有限公司 一种基于axios的接口拦截方法和***

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905160A (zh) * 2021-02-08 2021-06-04 中国工商银行股份有限公司 一种基于axios的封装注册全局拦截方法及装置
CN114172896A (zh) * 2021-12-08 2022-03-11 深圳前海环融联易信息科技服务有限公司 前端接收后端文件流的处理方法
CN116112558A (zh) * 2022-11-21 2023-05-12 上海浦东发展银行股份有限公司 一种基于axios的接口拦截方法和***

Similar Documents

Publication Publication Date Title
CN111338623B (zh) 一种开发用户界面的方法、装置、介质和电子设备
US10592399B2 (en) Testing web applications using clusters
CN104301443A (zh) 一种在web页面上调用端能力接口的方法和***
CN112015383A (zh) 一种登录方法和装置
US11811884B1 (en) Topic subscription provisioning for communication protocol
CN112202744B (zh) 一种多***数据通信方法和装置
CN113076294A (zh) 一种信息分享方法和装置
CN110704200A (zh) 转换调用接口的方法和装置
CN114979295A (zh) 一种网关管理的方法和装置
CN116561013B (zh) 基于目标服务框架的测试方法、装置、电子设备和介质
CN113360377A (zh) 一种测试方法和装置
CN111953718B (zh) 一种页面调试方法和装置
AU2018390863B2 (en) Computer system and method for extracting dynamic content from websites
CN111414154A (zh) 前端开发的方法、装置、电子设备和存储介质
CN112929453A (zh) 一种共享session数据的方法和装置
CN112131095B (zh) 压力测试方法和装置
CN112306791B (zh) 一种性能监控的方法和装置
CN110909269B (zh) 一种日志上报的方法和装置
CN113722115A (zh) 调用接口的方法、装置、设备和计算机可读介质
CN113468041A (zh) 一种接口对比测试方法和装置
CN113448652A (zh) 一种请求处理方法和装置
CN115577200B (zh) 加载页面的方法、装置、设备以及存储介质
CN113472785B (zh) 数据处理方法、装置、电子设备及可读存储介质
US8738049B1 (en) Converged dialog in hybrid mobile applications
US20210281629A1 (en) Processing of web-based applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination