Google Cloud OAuth同意屏幕未反映对(内部)应用程序范围的更改

问题描述 投票:0回答:1

背景

最初,我将Google Cloud应用程序设置为具有完整的Google云端硬盘范围(../auth/drive),并测试了与我的个人帐户的连接(即授予了该应用程序许可)。我正在使用PyDrive仅供参考。

我随后从我的个人帐户中删除了该应用程序(与驱动器断开连接],在OAuth同意屏幕设置中删除了整个范围,并仅将其替换为../auth/drive.file范围。

为了安全起见,我删除了OAuth凭据并重新创建了它们(并将它们重新下载到我的计算机上。)>

预期行为

[当出现OAuth屏幕时,我现在希望该范围反映出该应用程序只能访问自己创建的文件和文件夹。

实际行为

OAuth同意屏幕仍然告诉我该应用将有权访问我的云端硬盘中的all

文件和文件夹。

我用来验证的代码
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

...

    gauth = GoogleAuth()

    gauth.LoadCredentialsFile("app_user_secrets.json")

    if gauth.credentials is None:
        gauth.GetFlow()
        gauth.flow.params.update({"access_type": "offline"})
        gauth.flow.params.update({"approval_prompt": "force"})
        gauth.LocalWebserverAuth()
    elif gauth.access_token_expired:
        gauth.Refresh()
    else:
        gauth.Authorize()

    gauth.SaveCredentialsFile("app_user_secrets.json")

    drive = GoogleDrive(gauth)

关于为什么会发生这种情况或如何解决它的任何想法?

背景技术我最初使用完整的Google云端硬盘范围(../auth/drive)设置了Google Cloud应用程序,并测试了与我的个人帐户的连接(即授予了该应用程序许可)。我正在使用...

python google-drive-api google-oauth2
1个回答
0
投票

结果PyDrive默认情况下会设置自己的OAuth范围,除非您覆盖它们。默认值为https://www.googleapis.com/auth/drive,如下所示:https://pythonhosted.org/PyDrive/oauth.html#automatic-and-custom-authentication-with-settings-yaml

我通过编辑身份验证流程并在LocalWebserverAuth()命令之前包括以下行来修复并覆盖此问题。

© www.soinside.com 2019 - 2024. All rights reserved.