NextJS前端无法接收Golang后端设置的Cookie问题求助
大家好,我遇到了一个Cookie相关的棘手问题,想请各位帮忙排查下:
我有一个
/login接口,后端会在响应里设置一个带refresh token的HTTP Cookie,但当我调用/refresh接口时,后端却找不到这个Cookie。更奇怪的是,我在浏览器的网络面板里明明能看到/login接口响应里的Set-Cookie头,但这个Cookie完全没有出现在浏览器的Cookie存储中。
我的环境信息:
- 前端:
https://www.myapp.com(基于NextJS开发) - 后端:Golang服务(与前端域名不同,属于跨域场景)
我自己梳理了几个可能的方向,但还没找到问题根源,也想听听大家的建议:
- Cookie的SameSite属性配置:会不会是跨域场景下SameSite设得太严格?比如设成
Strict或Lax导致浏览器拒绝存储?我听说跨域场景需要设成SameSite=None,同时还要加上Secure属性,这点我是不是没配置对? - Domain属性是否匹配:后端设置Cookie时的Domain有没有和前端域名匹配?比如前端是
www.myapp.com,Domain是不是应该设为.myapp.com才能让前端正常存储Cookie? - 前端请求的Credentials配置:NextJS里用fetch或axios调用接口时,有没有开启
credentials: 'include'?是不是因为没开这个,浏览器才忽略了响应里的Set-Cookie内容? - HTTPS与Secure属性:前端是HTTPS环境,后端设置Cookie时是不是没加
Secure属性?这样浏览器会直接拒绝存储非HTTPS环境下的Cookie吗?
有没有大佬遇到过类似的问题,或者能给我一些更具体的排查思路?
备注:内容来源于stack exchange,提问作者Jack Frost
相关产品推荐
相关产品推荐

