问题描述:项目登录使用cas单点登录,并不在前端自己登录,
本地启动
起来之后调用接口,后端会判断是否经过认证登录,如果没有,则会返回cas登录的页面,登录成功后直接跳转至测试环境的系统首页
。问题就出在登录之后,不使用token认证,是后端自己的服务判断,因为本地是localhost
,而cas登录成功后跳转的是服务器上的测试环境
,所以本地每次请求接口都会认为是未登录状态,导致无法进行本地开发
解决方法:
- 看看后端是否可以改为返回token,前端每次请求携带token
- 在后端无法绕开认证的情况下,我们可以在本地启动一个
nginx代理服务,搭配host映射
;nginx监听端口9999,host将本地127.0.0.1映射到我们测试环境的域名xxx.xxx.com,我们本地项目启动之后,访问xxx.xxx.com:9999/ 就可以直接跑我们本地的代码了;
Host映射
127.0.0.1 xxxdev.xxx.com --- 本地开发使用这个
#10.5.253.145 xxxdev.xxx.com --- 访问测试环境使用这个
Nginx代理配置
server {
listen 8899;
server_name miccdev.nsfocus.com localhost;
#charset koi8-r;
access_log logs/access.log combined;
error_log logs/error.log debug;
location / {
root M:\work\Nsfocus_Manager\dev\hm_callcenter\html;
index index.html;
#上传文件大小控制
client_max_body_size 80M;
}
location ^~ /400/ {
proxy_pass http://58.48.122.206:8517;
}
error_page 500 502 503 504 404 403 /errorPage.html;
location = /errorPage.html {
root M:\work\Nsfocus_Manager\dev\CallCenter\nsfocus-seats;
}
#callcenter_seats
location ^~ /seatsapi/ {
proxy_pass http://callcenterSeats;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 80M;
}
}