我正在寻找有关Google使用oauth范围的详细信息
我的云端硬盘应用 正在运行,因此我可以简单地使用范围。但是我有以下详细的问题/问题。
一般问题,我确信我面临着与许多应用作者相同的困境。如果我增加功能(这是一件好事,因为它吸引用户),我还需要增加用户在我的应用程序中放置的权限/信任(这是一件坏事,因为它会排斥用户)。关于应用程序如何最好地处理这种利益冲突,是否有任何建议?
答案 0 :(得分:3)
客户端代码中的范围列表 - 这是用户授权您的应用执行的操作
当您请求用户授权时,您需要指定您希望用户同意的内容。这就是范围列表的用途 - 它控制用户在授权您的应用程序时看到的文本,并且该授权授予的刷新/访问令牌仅限于进行这些范围允许的API调用。
API控制台中启用的服务列表 - 这是您的应用授权用户执行的操作
据我所知,API控制台中没有指定范围列表。但是,可以启用一系列Google服务。在此处启用/禁用服务更多的是打开/关闭API调用和管理配额和/或接受与该API相关的服务条款的能力,而不是授权。
进行API调用时,您会发送访问令牌
访问令牌封装了发出请求的用户,用户授权您的范围以及用于授权的客户端ID(后者又属于您的项目)。此时,您需要在项目中启用API调用的服务以及API请求的正确范围 - 或者您将获得403。
当您的所需范围更改时 - 您应该希望用户需要重新授权
在您请求访问令牌(通常通过发送刷新令牌)时,您需要为该请求做好准备,以避免成功。也许是因为你添加了范围 - 但是用户可能选择访问https://accounts.google.com/IssuedAuthSubTokens并撤消了你的应用程序访问权限。我不确定如果你请求的范围少于最初用户授予的范围,我会尝试进行测试 - 但重点是无论你的代码是否需要能够处理这种情况。我相信OAuth2DecoratorFromClientSecrets(来自链接的问题)将为您优雅地处理这个问题但不确定 - 它应该很容易验证。
在多个客户端使用相同的授权 - 建议阅读此文档,看看它是否涵盖了您的所有方案:https://developers.google.com/accounts/docs/CrossClientAuth
要查看授予访问令牌的范围,请使用OAuth2 API:https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=yaxxxxxxxxxxxxxxx