Single sign on 如何防止用户被要求为域管理员已批准的Google Apps Marketplace应用授予权限

Single sign on 如何防止用户被要求为域管理员已批准的Google Apps Marketplace应用授予权限,single-sign-on,google-oauth,google-apps-marketplace,Single Sign On,Google Oauth,Google Apps Marketplace,我一直在尝试将旧式的Marketplace应用程序转换为新的操作方式,但当用户第一次使用通用导航链接时,我会不断提示用户进行授权。该应用程序是通过Marketplace SDK上的“测试安装流”链接安装到域中的 当我请求“openid电子邮件”作用域时,会出现提示,但如果我指定一个单独的作用域,而不是应用程序中的“openid电子邮件”之外的作用域,它不会提示用户进行身份验证,除非我请求脱机访问,我希望与以前的版本具有相同的功能,但每次只会出现一个问题 使用以下命令的示例代码: var http

我一直在尝试将旧式的Marketplace应用程序转换为新的操作方式,但当用户第一次使用通用导航链接时,我会不断提示用户进行授权。该应用程序是通过Marketplace SDK上的“测试安装流”链接安装到域中的

当我请求“openid电子邮件”作用域时,会出现提示,但如果我指定一个单独的作用域,而不是应用程序中的“openid电子邮件”之外的作用域,它不会提示用户进行身份验证,除非我请求脱机访问,我希望与以前的版本具有相同的功能,但每次只会出现一个问题

使用以下命令的示例代码:

var http=require'http'; var googleapis=需要“googleapis”; var url_parse=require'url'; var OAuth=googleapis.auth.OAuth2; var client=newoauth 客户识别码 客户机密 重定向URL ; http.createServerdispatcher.listen80; 函数dispatcherreq,res{ res.writeHead200,{'Content-Type':'text/html'}; var url=url_parse.parsereq.url,true; ifurl.pathname=='/auth'{ auth_timeres; }如果url.pathname=='/callback'{ 控制台。日志“看起来不错”; client.getTokenurl.query.code、functionerr、令牌{ console.logtokens; client.setCredentialstokens; res.endrender_page'yesp'; }; }否则{ res.endrender_页面“不同页面”; console.logreq.url; } } 函数auth_timeres{ res.endrender_页面; } 函数render_pagecontents{ 返回“页面”+内容+; }
这个答案表明https://www.googleapis.com/auth/plus.me 添加到Marketplace SDK上使用的作用域列表中,但这个范围在页面刷新时被删除了,我猜它被视为与其中一个或两个相同https://www.googleapis.com/auth/userinfo.email & https://www.googleapis.com/auth/userinfo.profile 自动设置为作用域且不可删除。

当您尝试将plus.me作用域添加到列表时,您是否记得单击页面底部的“保存更改”按钮?这样做应该允许范围添加持续。我在其他地方听说,您需要同时请求配置文件和电子邮件范围。你能试试吗?