【发布时间】:2017-10-11 09:04:58
【问题描述】:
从Google's API explorer 并使用 Authorize requests using OAuth 2.0 我想在我的 SPA 上,我看到 YOUR_API_KEY 以某种方式从登录中派生并用于后续调用:
https://www.googleapis.com/youtube/v3/channels?part=statistics&id=UCE5Au4LfcBHxTQR_yLbncrQ&key={YOUR_API_KEY}
我如何获得这把钥匙?我在 VueJS 应用程序中使用 GAPI.auth2.getAuthInstance() 工作。
我可以看到Google samples 中使用了 gapi。但我只想使用此用户的会话 API 密钥进行简单的直接 fetch 调用。我不想用gapi.client,还是别无选择?
更新:在Oauth2 playground 上,我看到它指的是客户端机密1。我根本不明白,因为没有后端的 SPA,你不想存储秘密!为什么客户端 ID 和 origin 不够用?
这里是another confusing example(未使用秘密),其中 apiKey 与 clientId 一起使用。为什么 clientId 还不够,因为它受到来源的限制?!
【问题讨论】:
-
如果我正确理解了您的问题,您是否正在尝试获取您的 API KEY,它应该在您的 Google Developer's Console 中?这将是您的 API 密钥,如果您有一个随机的 API 密钥并且您正在尝试 Fetch() 数据,它将无法工作,因为此 API 密钥与身份验证凭据不匹配。
-
我希望 API 密钥以某种方式从 GAPI.auth2 对象中明确派生。 IE。一旦用户通过 Google 登录进行身份验证/授权。我的 App IIUC 的 API 控制台不应该有 API 密钥。
标签: javascript youtube single-page-application google-signin