Google 登录和 Google API 密钥

时间:2020-12-24 19:36:26

标签: google-api-js-client

我正在将 Google 集成为我网站的登录选项。我使用 Oauth2 重定向用户并使用 code 返回我的网站,我用它在后端检索访问令牌,然后返回用户信息。我收到用户电子邮件(我使用范围 email)、sub(主题,我使用谷歌登录用作标识符)和 name

我调用端点 https://www.googleapis.com/oauth2/v3/userinfo?access_token=<access_token> 检索它。

这是在登录/注册页面中实现的,但有包含表单的离线页面,我希望能够在不重定向的情况下对用户进行身份验证。我已经在 Facebook 上这样做了,我使用他们的 javascript 库显示一个弹出窗口供用户进行身份验证,并检索我发送到后端的访问令牌以检索用户信息,如 Oauth2 with redirect case .

对于 Google,我也在使用他们的 javascript API,我发现除了客户端 ID 之外,它还需要一个 API 密钥。我创建了一个,将其限制在我的域中(目前,localhost),并且能够执行与 Facebook 案例相同的步骤,显示一个弹出窗口,在客户端检索访问令牌,发送它到后端并使用访问令牌检索用户信息。

我的问题是:

  1. 主题是否可以用作用户登录 Google 时的标识符?

  2. API 密钥发送给客户端是否安全?是否有一些官方文档对此进行了说明(发送给客户是安全的)?对于我所看到的,比如 here,在评论中看到并阅读了 Google 文档,似乎没有很大的安全问题,尽管有人可以使用它来消耗我的请求配额。

  3. 如果 2 是正确的,我如何限制 API 密钥,以便我可以继续执行上述步骤,使用访问令牌访问同一端点,检索用户 emailsubname,但阻止任何人尝试使用我的配额访问 API 密钥不需要的 Firebase、谷歌地图和其他内容?

0 个答案:

没有答案
相关问题