我有一个React+GraphQL应用程序,它可以联系谷歌云函数来运行一些代码。目前我允许未经身份验证的访问,但我希望将其锁定。我不知道如何在我的React应用程序中进行这样的身份验证:
fetch("https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME", {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': access_token // <-------- this is what I want
},
body: JSON.stringify(something)
})
这个例子在这个线程中说明:https://github.com/googleapis/google-auth-library-nodejs/issues/775
我很想使用服务帐户进行身份验证,但我不想使用Node服务器。我是否被迫走API关键路线?
这是验证云功能的文档:
https://cloud.google.com/functions/docs/securing/authenticating
谢谢!
我知道应该有一个更好的解决方案来解决我的用例。API网关是新的,所以当我寻找选项时,它并没有出现。感谢您的回复。
https://cloud.google.com/api-gateway/docs/quickstart
不建议使用web应用程序的服务帐户身份验证。但是,如果您需要在本地运行此应用程序进行测试,我认为您可以使用google-auth-library
。更多信息和代码示例可以在这里找到。
您还需要";云函数调用程序";角色。
话虽如此,我建议您将身份验证卸载到专门的身份验证提供商,如Firebase身份验证、Auth0或Okta。