【发布时间】:2021-03-14 19:16:23
【问题描述】:
我们正在另一个应用程序 (moodle) 作为插件运行一个应用程序(本地应用程序)。
当我们的应用程序尝试访问后端 graphql 时会发生什么,它不会添加 cookie,但在发送请求之前 cookie 在document.cookie 上可用。此外,在 iFrame 中打开应用程序之前,moodle 向后端服务器发出的请求很少,浏览器会将 cookie 添加到这些请求中。
以下是请求标头
- moodle -> 后端
Host: graphql.app.home
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: navigate
Sec-Fetch-Dest: iframe
Referer: https://moodle.home:8443/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: cb_ltiid=s%3AF0FJpsc8bVe9ZqyLzgNgK7flKfGf4W7u.2GL43c7XLV11BzHXCS%2B7AvQKBAS9xg%2BNc7gaj264%2Bks
- 应用(来自moodle iFrame)->后端
Host: graphql.app.home
Connection: keep-alive
Content-Length: 118
Pragma: no-cache
Cache-Control: no-cache
accept: */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
content-type: application/json
Origin: https://app.home
Sec-Fetch-Site: same-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://app.home/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
感谢您的帮助
【问题讨论】:
-
应用打开时;您是否使用 Chrome 开发工具检查了第一个请求是否有一些警告?通常发生这种情况是因为缺少 set-cookie 策略(例如相同的域策略)
-
我确实检查过,所有配置都是正确的,我没有看到任何警告或错误。奇怪的是,它可以在主机应用程序中运行,但不能在子应用程序中运行。
标签: node.js google-chrome cookies graphql session-cookies