首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用OAuth2WebServerFlow的多个Scopes

使用OAuth2WebServerFlow的多个Scopes
EN

Stack Overflow用户
提问于 2014-01-30 17:50:26
回答 1查看 4.2K关注 0票数 2

我希望使用OAuth2WebServerFlow()授权多个作用域。以下是我的当前代码:

代码语言:javascript
运行
复制
flow = OAuth2WebServerFlow(
    client_id=id,
    client_secret=secret,
    scope= ['scope1','scope2','scope3'],
    approval_prompt='force',
    access_type='offline')

当我被重定向到谷歌授权屏幕时,该应用程序所要求的唯一权限就是“拥有离线访问”。此外,我在API控制台中打开了这些作用域。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-30 18:10:11

来自文档

除了这些特定于OpenID的作用域之外,范围参数还可以包括其他作用域字符串。所有作用域字符串必须以空格分隔.例如,如果您想要访问用户的Google驱动器的每个文件,您的作用域可能是openid配置文件电子邮件https://www.googleapis.com/auth/drive.file

所以在你的情况下:

代码语言:javascript
运行
复制
scope= 'scope1 ' + 'scope2 ' + 'scope3'

示例:

代码语言:javascript
运行
复制
scope = ('https://www.googleapis.com/auth/devstorage.read_write ' +
         'https://www.googleapis.com/auth/prediction')

编辑

正如@Greg提到的那样:

OAuth2WebServerFlow接受字符串或可迭代字符串,在构造auth之前,它将字符串转换为空格分隔的参数。

我倾向于将oAuth用于apis (应用程序授权),而对用户oauth则不太使用,因此我忘记了我在自己的应用程序中也观察到了这一点。

如果您的作用域具有无效的授权,那么您将得到一个错误的授权。

不过,如果您要求获得正确的,那么大多数情况下它们都是合并的。

在下面的示例中,我询问有关'https://www.googleapis.com/auth/devstorage.read_write ' + 'https://www.googleapis.com/auth/prediction'的情况

但是,虽然我只被提示要离线访问。我的应用程序工作正常,权限是正确的。应用程序不具有更多权限(其他apis)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21463869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档