flftfqwxf / mockserver

Mockserver is a mock data tools and switch between mock data and real data,【一个用于前后分离时模拟数据的web系统,并可在直实数据与实际数据中自由切换】
http://mock.chinesefoodrecipes.net
MIT License
337 stars 102 forks source link

二次代理 #2

Closed XIAOGUIGUI closed 7 years ago

XIAOGUIGUI commented 7 years ago

请问你这个系统怎么处理二次代理的接口的登录问题?

flftfqwxf commented 7 years ago

通过cookie或header头信息,通常情况下:用户登录了,会在客户端记录COOKIE,以便发送到后端去验证接口,我这边项目的处理方式是,所有的AJAX请求,都会将用户验证的COOKIE,通过HEADER头信息发磅到服务端,全局设置或每个单独的接口上,可以设置需要通过【二次代理】到真实服务上的header字段,当你用于验证的header字段传到真实的服务端时,服务端作验证,这样就跟直接连真实接口是一样的了。

比如:

客户端: 1.你登录后,服务端一般会返回一个COOKIE,假如为:

adminAuthorization:xxxx1

2.在进入页面时,可以将cookie缓存起来,并在AJAX请求时,自定义header字段:adminAuthorization,值为你缓存的COOKIE,将这个cookie值,传送出去,比如jquery,全局设置所有的AJAX请求都将这个header字段传递给后端。

$.ajaxSetup({ beforeSend: function(xhr) { if (adminAuthorization) { xhr.setRequestHeader('AdminAuthorization', adminAuthorization); }
} });

mock-server 系统设置:

在系统设置中(推荐),设置你要二次代理中,被传递到真实服务端的HEADER字段名

服务端:

让后端通过这个字段来验证是否是登录