【问题标题】:How to selectively add scopes for Google Apps accounts如何有选择地为 Google Apps 帐户添加范围
【发布时间】:2016-12-20 02:56:39
【问题描述】:

我希望能够在 OAuth 期间为添加到我的服务的所有 Google 帐户使用 Directory API 所需的某些范围。但是,其中一些范围与免费的 Gmail 帐户无关。

现在,一种选择是在我们的服务本身中设置一个单独的流程,这样我们就可以让用户明白 Google Apps 和 Gmail 的不同之处。但从以前的经验来看,我发现不少用户不够精明,无法区分这两者,而是继续使用 Gmail 流程,这些用户最终会错过我们本可以提供的功能,如果他/她选择了 Google Apps 流程。

我宁愿避免这种情况,并让用户的事情尽可能简单。为此,我有什么办法可以在第一站期间指定“添加 this scope if this is a Google Apps account”

【问题讨论】:

  • 1.我不确定是否有办法在用户通过身份验证后确定它是否是应用程序帐户。 2. 如果可以的话,一旦您通过身份验证,就有一种方法可以请求额外的范围。 3. 有可能,但不知道你是如何编码的developers.google.com/identity/sign-in/web/incremental-auth

标签: oauth-2.0 google-api google-oauth


【解决方案1】:

假设您想使用https://www.googleapis.com/auth/admin.directory.orgunit 范围。

即使您确实包含此范围以由用户授权,无论他们是免费的 gmail 帐户还是非 G Suite 管理员,您都不会在流程中收到任何错误。只有当您以非 G Suite 管理员身份调用需要 admin.directory.orgunit 范围的 API 时,您才会收到错误消息。

如果您担心如果您要求的范围过多,可能会阻止您的用户使用您的应用,您可以在需要时request additional scopes

If you want to detect if a user is a free gmail or a G Suite account check out this answer。之后,如果它是 G Suite 帐户,您可以要求提供其他范围。

【讨论】:

  • 我知道添加目录范围不会导致任何错误,但免费的 Gmail 用户最终也会在我想避免的 OAuth 同意屏幕中看到该权限。在检测到它是否是托管域之后请求额外范围的想法听起来像是一个计划:)
猜你喜欢
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 2017-10-31
  • 2018-09-06
  • 1970-01-01
  • 2014-03-10
  • 2017-11-10
相关资源
最近更新 更多