CORS错误-响应标头中缺少Access-Control-Allow-Origin(仅来自西班牙IP)

时间:2019-07-04 07:34:18

标签: google-cloud-platform cors google-oauth openid-connect

通过OpenID Connect进行Google登录

对于网络应用程序,我使用通过OpenID Connect的Google登录。它对整个欧洲的用户都很好,没有任何问题。

自7月以来,不再可能从西班牙IP登录,因为它以 CORS 错误结束。

出现 CORS 问题的原因是,在请求标头中带有“ Origin” 的请求之后,响应标头中不包含'access- control-allow-origin'

问题请求违反了Google搜索文档中的 jwks-uri (“ https://www.googleapis.com/oauth2/v3/certs”)。

响应标头中缺少'access-control-allow-origin'的情况仅发生于来自西班牙IP的请求。在欧洲范围内,响应标头包含“ access-control-allow-origin” *。

可以使用curl查看响应标题中缺少的'Access-Control-Allow-Origin'

  

curl -v -H“来源:https://bla.appspot.comhttps://www.googleapis.com/oauth2/v3/certs

在西班牙境外的正确答复:

...
https://bla.appspot.com
<接受范围:无
...

来自西班牙IP的错误响应:

...
<缓存控制:公共,最大年龄= 24874,必须重新验证,不进行转换
<年龄:9060
<接受范围:无
...

为什么只有西班牙IP会发生这种情况,如何在响应头中获得所需的“ access-control-allow-origin”?

1 个答案:

答案 0 :(得分:1)

我在Google支持部门打开了一个案例,今天确认了此修复程序。

“ ... App Engine专家确认问题已经解决,并且已经解决。您可以从头检查并确认吗? ...”

如果西班牙和法国IP要求针对 jwks-uri(“ https://www.googleapis.com/oauth2/v3/certs”) access-control-allow-origin (访问控制允许来源)将再次在响应标头中提供。