Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

解决 无法访问非同域名下的接口 或 登录后 Cookie 马上失效且自动退出登录 #9

Open
TommyLemon opened this issue Jan 16, 2021 · 1 comment
Labels

Comments

@TommyLemon
Copy link
Owner

TommyLemon commented Jan 16, 2021

Chrome 80+ 强制 same-site Cookie 的策略导致。

Chrome 94+ 可以以下方式 或 使用旧版(偶尔失效)

打开 tab 页面 chrome://flags/#block-insecure-private-network-requests
将其 Block insecure private network requests 设置为 Disabled, 然后重启就行了, 这样子就相当于把这个功能禁用掉。
image

Chrome 90+ 其它版本可以用以下方式(推荐,目前每次测试都有效)

先完全退出 Chrome,然后终端命令启动

open -n /Applications/Google\ Chrome.app/ --args --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --disable-web-security --user-data-dir=~/MyChromeDevUserData/

会有一个报错弹窗:Chrome 无法对目录 MyChromeDevUserData 进行写入操作。
点击确定会启动开发调试模式的 Chrome,浏览器地址栏下会多出一栏:

image

然后再按以下方式修改 Chrome 设置

Chrome 87 以下可以修改 Chrome 设置

https://www.cnblogs.com/jingmo0319/p/13402645.html
还不行再试试把设置项 Reduce default 'referer' header granularity 改为 Enabled。
image

或安装和使用浏览器插件 Access-Control-Allow-Origin

https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf

Chrome 87-89 目前经测试只能以关闭安全验证模式启动 Chrome(推荐,目前每次测试都有效)

Windows

Chrome.exe 文件快捷方式中属性 目标 添加

--disable-web-security --user-data-dir

具体见 https://www.cnblogs.com/q149072205/p/12162233.html

MacOS

终端输入命令

open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --args --user-data-dir="/tmp/chrome_dev_test" --disable-web-security

具体见 https://www.jianshu.com/p/2db73311fcbe/

如果以上都不行,或者还存在登录态总是失效问题

可以把 APIAuto 源码部署到和被测服务同一域名(最好是同一机器,SpringBoot 项目可放在 static 目录),
参考 APIAuto 使用的后端 APIJSONBoot-MultiDataSource
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource

或者直接用旧版 Chrome(80 以下)
https://www.slimjet.com/chrome/google-chrome-old-version.php

@TommyLemon TommyLemon changed the title 解决 Chrome 87+ 等浏览器无法访问非同域名下的接口 解决 Chrome 80+ 等浏览器无法访问非同域名下的接口 Jan 16, 2021
@TommyLemon TommyLemon pinned this issue Jan 16, 2021
@TommyLemon TommyLemon changed the title 解决 Chrome 80+ 等浏览器无法访问非同域名下的接口 解决 Chrome 80+ 等浏览器无法访问非同域名下的接口或登录 Cookie 马上失效 Jul 23, 2021
@TommyLemon TommyLemon changed the title 解决 Chrome 80+ 等浏览器无法访问非同域名下的接口或登录 Cookie 马上失效 解决 Chrome 80+ 等浏览器无法访问非同域名下的接口或登录后马上自动退出登录 Jul 23, 2021
@TommyLemon TommyLemon changed the title 解决 Chrome 80+ 等浏览器无法访问非同域名下的接口或登录后马上自动退出登录 解决 Chrome 80+ 等浏览器无法访问非同域名下的接口或登录后 Cookie 马上失效且自动退出登录 Jul 23, 2021
@TommyLemon TommyLemon changed the title 解决 Chrome 80+ 等浏览器无法访问非同域名下的接口或登录后 Cookie 马上失效且自动退出登录 解决无法访问非同域名下的接口或登录后 Cookie 马上失效且自动退出登录 Jul 27, 2021
@TommyLemon
Copy link
Owner Author

百度、搜狗、抖音公网接口调用演示
#16

@TommyLemon TommyLemon changed the title 解决无法访问非同域名下的接口或登录后 Cookie 马上失效且自动退出登录 解决 无法访问非同域名下的接口 或 登录后 Cookie 马上失效且自动退出登录 Jan 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant