首页 > 解决方案 > 从没有 userinfo.profile 范围的 googleapis 获取用户的组织详细信息(例如标识符和/或域)

问题描述

我正在寻找一些描述的标识符,以便我查看用户所属的 Google 组织。此标识符的目的是识别多个用户何时属于同一个 Google 组织。

目前这是我正在做的事情:

// oauth2 stuff above
const userInfo = await oauth2.userinfo.get({});
const {
  data: { email, hd },
} = userInfo;

这将返回域 ( hd) 但它需要https://www.googleapis.com/auth/userinfo.profile范围。此范围请求访问所有用户的公共信息,包括性别、姓名、个人资料图片等。

有一个更好的方法吗?是否有一个我可以使用的范围,它只要求访问organisation id谷歌或其他东西?

此标识符必须对整个 Gsuite/Workspace 组织是唯一的(或者,如果是 gmail 帐户,而不是 Gsuite/Workspace 帐户,则显然为空/null)。

提前致谢!

标签: node.jsgoogle-apigoogle-oauth

解决方案


如果您请求范围openid email,则hd声明包含在 ID 令牌中,您根本不需要调用 UserInfo 端点。

是的,检查hd声明是确定用户帐户是否由 Cloud Identity/Workspace 管理的正确方法。


推荐阅读