店里那台老ThinkPad跑gcloud,令牌过期害我白折腾
上周三下午,隔壁打印店老板抱来一台ThinkPad T440,说 Chrome 打开 Google 搜索一直转圈,可别的网站都正常。机器是 Win7,内存加到 8G,Chrome 版本挺老,我估摸着不是网络的事。先别急,我跟你讲,这种「只有 Google 转圈」的现象,十有八九是代理或者证书的问题,但这次我判断错了。
我第一步是关掉他装的某个所谓「加速器」,直接改成手动代理,结果搜索能打开,Google Cloud 控制台又白屏。第二步我想着用命令行查一下,装了个 gcloud SDK,版本 462.0.0,跑:
gcloud auth list
gcloud config list
结果报 Reauthentication required,提示令牌过期。我又跑:
gcloud auth application-default login
浏览器弹出来授权,走完流程,控制台还是白屏。最后发现是系统时间不对,差了三天,OAuth 的 token 直接判失效。我把时间同步到 time.windows.com,再跑一次 gcloud auth login,控制台才正常。
为什么折腾这么久?因为我一开始把问题当成浏览器缓存和代理,没先看时间。Google 的 OAuth 令牌对时间偏移很敏感,差几分钟就可能失败,三天根本不用想。代价就是多花了四十分钟重装 SDK、清缓存,全是白费。
这套做法在极端条件下会失效:如果客户机器是 32 位 Win7,gcloud 最新版根本装不上,得退回 416 之前的版本;另外公司网络拦了 accounts.google.com 的话,命令行授权也走不通,只能换离线方式。我自己踩过的坑是之前给一台 XP 机器装旧版 SDK,装完也跑不起来,白忙一下午。
你们修老机器时,是先查系统时间还是先查代理?有没有碰到过时间同步了、令牌还是过期的?
0
赞同度 100% · 0 条评论 · 7 阅读
0 条评论
还没有评论,写下第一条。