解决控制台中cookie没有携带token的问题
最近在做用户登录的功能,需要进行无状态的请求其他微服务,但是我后台的登录已经成功,ccookie已经set进去了,使用postman测试也是成功的,但是就是在控制台登录时找不到自己设置的cookie,postMan都请求成功了,还携带了token,这是咋回事呢,我就想可能有两种原因:1.nginx问题2.网关zuul的问题于是我就调试一下看看在设置cookie时候...
项目地址:https://github.com/hx1098/leyou
最近在做用户登录的功能,需要进行无状态的请求其他微服务,但是我后台的登录已经成功,ccookie已经set进去了,使用postman测试也是成功的,但是就是在控制台登录时找不到自己设置的cookie,
postMan都请求成功了,还携带了token,
这是咋回事呢,我就想可能有两种原因:
- 1.nginx问题
- 2.网关zuul的问题
于是我就调试一下看看在设置cookie时候发生了什么,
发现在setDomainName时候ip地址由192.168.6.129变成了127.0.0.1:8087了,
这是由于使用了nginx的反向代理,于是,在自己的nginx下面添加如下代码
添加好之后,重新进行debug,发现还是不行,想到网关也做了反向代理,于是在网关的application.yml加入如下
他会将头给加进去,但是zunnl有一个坑,
这个zunnl的过滤器中会有一个添加忽略头信息的一行代码
也就是说你就算设置好了之后也是没有用的,点击去
在点进去发现
cookie和setCookie都被忽略掉了,就不能设置cookie了,这可咋办?
那就直接覆盖一个吧!
在zuul服务的配置文件中添加
add-host-header: true #添加头
sensitive-headers: #覆盖敏感头信息,是cookie可以正常写入。
此时在去重启网关,
完美!!!
所以,还是三个地方要进行改动
nginx添加
proxy_set_header Host $host;
网关application.yml中添加
zuul
add-host-header: true #添加头
sensitive-headers: #覆盖敏感头信息,是cookie可以正常写入。
更多推荐
所有评论(0)