是否可以 'get through' 第三方 google 不使用 OAuth 登录?
Is it possible to 'get through' a 3rd party google login without using OAuth?
抱歉标题措辞不当。
我正在为我的学校使用的 CMS 应用开发终端客户端——为了登录该应用,他们使用学校的 google 帐户(即 google window 用于登录弹出窗口,您必须使用学校的 google 帐户登录)。
所以我的问题是,这个简单的登录是否必须使用 OAuth?据我所知,Oauth 是访问用户 google 应用程序数据并使用它的唯一方法,但在这种情况下,我不必这样做,只是想绕过一次登录。
我将在 python 中对应用程序进行编码,我发现 following 库与这项工作相当直接相关,但这又遵循了获取授权的标准周期 -- > 获得 google 应用程序的访问权限 --> 使用各自的 API 来处理相关数据 -- 我想知道如果我有用户的 ID 和密码,是否有办法避免相同的情况,并且只是想使用 google 帐户登录作为访问其他网页(在本例中为 CMS)
谢谢!
你首先要了解的是Authencation和authorization的区别
登录名和密码经过验证,您正在验证计算机背后的人实际上是帐户的所有者,他们知道登录名和密码。
Oauth2 有所不同,这是授权,经过身份验证的用户正在授权您的应用程序访问他们的数据。这是您经常看到的同意屏幕,用户必须在此处同意应用程序访问他们的数据。
接下来您需要了解的是私有数据和 public 数据之间的区别。 Public 数据只是 public 不为任何人所有。 Google 日历有一些 public 日历存储每个国家/地区的假期数据。已上传的 YouTube 视频 public 还允许您 select 无需经过身份验证或授权即可访问它们。
另一方面,私人数据是某人拥有的数据。要访问我的个人资料数据,您需要获得我的许可或同意才能访问它。要访问我的 google 驱动器帐户中的文件,您再次需要我的同意才能访问它。
回答
所以简单的答案是否定的,如果它的私人用户数据和用户正在使用您的应用程序,那么他们需要验证(登录)并授权(同意)您的应用程序访问他们的数据。
然而,存在一个称为服务帐户的灰色区域,这就是为什么我询问 api 您正在尝试访问(在评论中)以及您正在尝试访问的内容。
现在你提到这是你的学校帐户,这对我来说意味着你可能有一个 google 工作区帐户。如果您这样做,则工作区帐户的管理员可以预先授权服务帐户代表工作区域中的所有用户(不是普通的 gmail 帐户)访问数据。您可以执行控制域中每个人的 Gmail 签名等操作。
之所以可能,是因为域管理员可以通过 google 工作区委派权限或授予权限。如果它是普通用户的 gmail 帐户,那么每个用户仍需要授予服务帐户访问其数据的权限。 (服务帐户不适用于普通的 gmail 帐户,实际上这可能是一个不好的例子。)
你提到虽然你在获取配置文件数据,但如果你没有工作区帐户,那么不幸的是你将不得不让用户 运行 你的应用程序并同意你访问他们的数据。他们只需要一次,因为您可以存储刷新令牌,这样您就可以在他们离线时访问他们的数据。
因此,如果他们通过您的 CMS 登录他们的 google 帐户,如果您在他们登录时请求同意,那么您可以将刷新令牌存储为用户登录的一部分,然后访问他们的 google 任何时候需要的个人资料信息。
抱歉标题措辞不当。
我正在为我的学校使用的 CMS 应用开发终端客户端——为了登录该应用,他们使用学校的 google 帐户(即 google window 用于登录弹出窗口,您必须使用学校的 google 帐户登录)。
所以我的问题是,这个简单的登录是否必须使用 OAuth?据我所知,Oauth 是访问用户 google 应用程序数据并使用它的唯一方法,但在这种情况下,我不必这样做,只是想绕过一次登录。
我将在 python 中对应用程序进行编码,我发现 following 库与这项工作相当直接相关,但这又遵循了获取授权的标准周期 -- > 获得 google 应用程序的访问权限 --> 使用各自的 API 来处理相关数据 -- 我想知道如果我有用户的 ID 和密码,是否有办法避免相同的情况,并且只是想使用 google 帐户登录作为访问其他网页(在本例中为 CMS)
谢谢!
你首先要了解的是Authencation和authorization的区别
登录名和密码经过验证,您正在验证计算机背后的人实际上是帐户的所有者,他们知道登录名和密码。
Oauth2 有所不同,这是授权,经过身份验证的用户正在授权您的应用程序访问他们的数据。这是您经常看到的同意屏幕,用户必须在此处同意应用程序访问他们的数据。
接下来您需要了解的是私有数据和 public 数据之间的区别。 Public 数据只是 public 不为任何人所有。 Google 日历有一些 public 日历存储每个国家/地区的假期数据。已上传的 YouTube 视频 public 还允许您 select 无需经过身份验证或授权即可访问它们。
另一方面,私人数据是某人拥有的数据。要访问我的个人资料数据,您需要获得我的许可或同意才能访问它。要访问我的 google 驱动器帐户中的文件,您再次需要我的同意才能访问它。
回答
所以简单的答案是否定的,如果它的私人用户数据和用户正在使用您的应用程序,那么他们需要验证(登录)并授权(同意)您的应用程序访问他们的数据。
然而,存在一个称为服务帐户的灰色区域,这就是为什么我询问 api 您正在尝试访问(在评论中)以及您正在尝试访问的内容。
现在你提到这是你的学校帐户,这对我来说意味着你可能有一个 google 工作区帐户。如果您这样做,则工作区帐户的管理员可以预先授权服务帐户代表工作区域中的所有用户(不是普通的 gmail 帐户)访问数据。您可以执行控制域中每个人的 Gmail 签名等操作。
之所以可能,是因为域管理员可以通过 google 工作区委派权限或授予权限。如果它是普通用户的 gmail 帐户,那么每个用户仍需要授予服务帐户访问其数据的权限。 (服务帐户不适用于普通的 gmail 帐户,实际上这可能是一个不好的例子。)
你提到虽然你在获取配置文件数据,但如果你没有工作区帐户,那么不幸的是你将不得不让用户 运行 你的应用程序并同意你访问他们的数据。他们只需要一次,因为您可以存储刷新令牌,这样您就可以在他们离线时访问他们的数据。
因此,如果他们通过您的 CMS 登录他们的 google 帐户,如果您在他们登录时请求同意,那么您可以将刷新令牌存储为用户登录的一部分,然后访问他们的 google 任何时候需要的个人资料信息。