为什么:appengine 到 firebase 身份验证失败,错误引用被禁止
Why: appengine to firebase Authentication fails with error referer forbidden
我有一个部署在 google 云应用程序引擎上的 Web 应用程序项目。
gcloud app deploy
应用引擎基本上只是一个提供静态文件的网络服务器。但是我不得不使用 appengine 为 SEO 预渲染网站。
在 webapp 中,我使用了 firebase 身份验证 API。
https://www.gstatic.com/firebasejs/7.8.0/firebase-auth.js
在 firebase 控制台中,我激活了匿名身份验证。
preview of firebase auth providers
当我在应用引擎上部署我的静态内容的新版本时,我创建了一个名为 "stag" 的新版本,只是为了在部署到生产环境之前预览和测试所有内容。然后我可以预览我在特定版本 url 上的工作,就像这样:
https://stag-dot-frb-proj1.appspot.com/
frb-proj1: 是我的 firebase 项目 ID。
当我在 url 上预览我的作品时:https://stag-dot-frb-proj1.appspot.com/
我收到以下错误:
{
"error": {
"code": 403,
"message": "Requests from referer https://stag-dot-frb-proj1.appspot.com/ are blocked.",
"errors": [
{
"message": "Requests from referer https://stag-dot-frb-proj1.appspot.com/ are blocked.",
"domain": "global",
"reason": "forbidden"
}
],
"status": "PERMISSION_DENIED"
}
}
我在网络选项卡上的 chrome 开发工具中发现了错误。当应用程序尝试访问以下内容时会发生这种情况 url:
https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=AIza....CcpT0
我假设此 api 调用是为了在 firebase 身份验证 api 上创建一个新的匿名用户 api。
所有使用的域都按预期在 firebase 控制台中获得授权。
授权域
- frb-proj1.firebaseapp.com
- frb-proj1.web.app
- 鹿点-frb-proj1.appspot.com
- frb-proj1.appspot.com
尝试过的解决方案
我试着按照这个例子https://cloud.google.com/appengine/docs/standard/python/authenticating-users-firebase-appengine
并在我的 app.yaml 中为 appengine
设置环境变量 FIREBASE_PROJECT_ID
问题
知道哪里出了问题吗?
考虑到这个错误,这个问题似乎与你的 API 密钥有关。根据这些其他类似情况 - 您可以在下面的链接中访问 - 似乎配置的 API 密钥没有所有需要的权限。
我建议您查看以下案例,并尝试使用那里提供的解决方案 - 他们都表示它解决了他们的问题。
- firebaseui Internal error: {"error":{"code":403,"message":"Requests from referer are blocked.","errors":{"message":"Requests from referer
- App hosted on firebase does not have access to firebase authentication? PERMISSION_DENIED
如果这些信息对您有帮助,请告诉我!
我有一个部署在 google 云应用程序引擎上的 Web 应用程序项目。
gcloud app deploy
应用引擎基本上只是一个提供静态文件的网络服务器。但是我不得不使用 appengine 为 SEO 预渲染网站。
在 webapp 中,我使用了 firebase 身份验证 API。 https://www.gstatic.com/firebasejs/7.8.0/firebase-auth.js
在 firebase 控制台中,我激活了匿名身份验证。 preview of firebase auth providers
当我在应用引擎上部署我的静态内容的新版本时,我创建了一个名为 "stag" 的新版本,只是为了在部署到生产环境之前预览和测试所有内容。然后我可以预览我在特定版本 url 上的工作,就像这样:
https://stag-dot-frb-proj1.appspot.com/
frb-proj1: 是我的 firebase 项目 ID。
当我在 url 上预览我的作品时:https://stag-dot-frb-proj1.appspot.com/ 我收到以下错误:
{
"error": {
"code": 403,
"message": "Requests from referer https://stag-dot-frb-proj1.appspot.com/ are blocked.",
"errors": [
{
"message": "Requests from referer https://stag-dot-frb-proj1.appspot.com/ are blocked.",
"domain": "global",
"reason": "forbidden"
}
],
"status": "PERMISSION_DENIED"
}
}
我在网络选项卡上的 chrome 开发工具中发现了错误。当应用程序尝试访问以下内容时会发生这种情况 url:
https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=AIza....CcpT0
我假设此 api 调用是为了在 firebase 身份验证 api 上创建一个新的匿名用户 api。
所有使用的域都按预期在 firebase 控制台中获得授权。
授权域
- frb-proj1.firebaseapp.com
- frb-proj1.web.app
- 鹿点-frb-proj1.appspot.com
- frb-proj1.appspot.com
尝试过的解决方案
我试着按照这个例子https://cloud.google.com/appengine/docs/standard/python/authenticating-users-firebase-appengine
并在我的 app.yaml 中为 appengine
设置环境变量 FIREBASE_PROJECT_ID问题
知道哪里出了问题吗?
考虑到这个错误,这个问题似乎与你的 API 密钥有关。根据这些其他类似情况 - 您可以在下面的链接中访问 - 似乎配置的 API 密钥没有所有需要的权限。
我建议您查看以下案例,并尝试使用那里提供的解决方案 - 他们都表示它解决了他们的问题。
- firebaseui Internal error: {"error":{"code":403,"message":"Requests from referer are blocked.","errors":{"message":"Requests from referer
- App hosted on firebase does not have access to firebase authentication? PERMISSION_DENIED
如果这些信息对您有帮助,请告诉我!