过去一个月我一直在与Google支持代表合作,后者负责验证Google App Marketplace提交的SSO工作流程/集成。我们已经成功设置,配置和测试了所有内容 - 除了一个神秘的问题。我的Google代表建议我在这里发布我们的问题,因为他和我都不确定如何解决它。
安装我们的应用程序(https://chrome.google.com/webstore/detail/floruit-labs-pond/bhalfbanckpdhnkjnknlhcoiohcigocm?hl=en)时,工作流会多次提示您允许权限。这当然是在市场上发布的交易破坏者。
冒着过度分享的风险,我附上了背景资料:screenshots of our install workflow
此外,下面复制的是我们登录页面中嵌入的代码片段 - 它添加了Google登录按钮功能:
<!---include Google Apps SSO scripts --->
<meta name="google-signin-client_id" content="743379733841-bt8rpjio0qs44kei4vlk5av888fbp0fs.apps.googleusercontent.com">
<script src="https://apis.google.com/js/platform.js" async defer>
<!---include Google Apps SSO button --->
<div class="g-signin2" data-theme="dark" data-width="250" data-height="52" data-longtitle="true" align="left" style="margin-top:50px;"></div>
<script>
function onSignIn(googleUser) {
// Useful data for your client-side scripts:
var profile = googleUser.getBasicProfile();
console.log("ID: " + profile.getId()); // Don't send this directly to your server!
console.log("Name: " + profile.getName());
console.log("Image URL: " + profile.getImageUrl());
console.log("Email: " + profile.getEmail());
// The ID token you need to pass to your backend:
var id_token = googleUser.getAuthResponse().id_token;
console.log("ID Token: " + id_token);
};
function renderButton() {
gapi.signin2.render('my-signin2', {
'scope': 'profile email https://www.googleapis.com/auth/drive',
'longtitle': true,
'theme': 'dark',
'onsuccess': onSuccess,
'onfailure': onFailure
});
}
</script>
&#13;
答案 0 :(得分:0)
登录/ OAuth2对话框如果包含用户或管理员未批准的其他范围,则不会自动批准。 Google登录按钮似乎始终包含&#34; openid&#34;范围,不是您的应用程序配置的范围之一。请将该范围添加到您的Apps Marketplace配置中,它应该可以解决问题。