如何在授权Oauth2.0时检索用户组织单位

时间:2018-02-07 15:09:29

标签: google-oauth2 google-directory-api google-classroom

BIT OF INFO

我们正在尝试为使用Google Classroom或Google G-Suite for Education的学生建立登录信息。基本上,单点登录系统。学生和管理员将登录,我将验证他们的电子邮件扩展,这将是他们所在地区的唯一,然后我将他们放在我们系统中正确的学校。

用户帐户在我们系统中的许可证分区是在用户登录时动态发生的,因此一开始就不需要大量数据转储。

用户和管理员必须路由到我们系统中正确的学校,因为管理员在我们的系统中运行报告和管理用户,并且需要具有正确的访问权限。

问题

我无法弄清楚如何从Google服务API获取用户Organizational Units。一般来说,学校将使用组织单位作为学校,并将学生分配到这些学校。

因此,当我使用Oauth2

对用户进行身份验证时
$googleService = new Google_Service_Oauth2($googleClient);
$info = $googleService->userinfo->get();

这样可以获得一些基本信息,但不包括该用户的组织单位。

然后当我尝试使用Google Directory api时,它工作正常但仅当用户是管理员时

$directory = new Google_Service_Directory($googleClient);
$user = $directory->users->get($userId);

因此,如果登录我的应用程序的人(主要是学生)不是管理员,那么他们就无法从Google Directory获取任何信息。

主要问题

如何获取经过身份验证的用户的组织单位,而不是管理员?

使用Google服务可能无法做到这一点,但我们会使用其他六种服务来解决此问题。任何帮助表示赞赏。似乎无法在谷歌论坛或代码示例中找到有关此信息的任何信息。

0 个答案:

没有答案