首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何初始化没有登录按钮的Google登录?

如何初始化没有登录按钮的Google登录?
EN

Stack Overflow用户
提问于 2016-03-14 09:19:46
回答 2查看 10.2K关注 0票数 8

下面的代码用作使用谷歌登录的简单测试页面

代码语言:javascript
运行
复制
<html lang="en">
  <head>

    <script type="text/javascript">

        function onGapiLoaded() {
            auth = gapi.auth2.init({
                client_id: "REPLACE_WITH_YOUR_ID",
                scope: "profile email"

            });

            console.log( "signed in: " + auth.isSignedIn.get() );

            auth.isSignedIn.listen( function(signedIn){ console.log( "signedin: " + signedIn ) } );

            gapi.signin2.render( "signInButton", {
                'width': 230,
                'height': 50,
                'longtitle': true,
                'theme': 'dark',
                'onsuccess': onSignIn
            } );
        }

          function onSignIn(googleUser) {
            // Useful data for your client-side scripts:
            var profile = googleUser.getBasicProfile();
            console.log("Name: " + profile.getName());
          };


    </script>

    <script src="https://apis.google.com/js/platform.js?onload=onGapiLoaded" async defer></script>

  </head>
  <body>
    <div id="signInButton" class="g-signin2"></div>
  </body>
</html>

但是,如果我从signin按钮中删除class="g-signin2",或者完全删除按钮,那么按钮不仅会消失,而且库中的整个标志也会停止工作--我得到了一个不明确的例外:

无法读取未定义的属性“init”

当我试图调用gapi.auth2.init而用户没有登录时。看起来,auth库依赖于存在于dom中的一个按钮来初始化。

我计划在我的角度应用程序中加入这一点,在任何按钮出现在舞台上之前,该应用程序将初始化服务中的auth lib。如果用户已经登录,则不会出现任何登录按钮。根据这里的行为,如果没有DOM中的一个按钮,我将无法使用这个lib,这看起来相当紧缩。

EN

Stack Overflow用户

发布于 2016-03-14 09:30:42

不要取出class="g-signin2",而是向它添加style="display:none;",在函数onSignIn上隐藏按钮,如果它是可见的,使用新的函数onFailedSignIn向gapi.signin2.render添加一个'onfailure': onFailedSignIn,如果它是隐藏的,它会显示该按钮。

这样,您就不会破坏Google隐藏的任何默认功能,但仍然可以在用户通过身份验证时隐藏按钮,并在用户未通过身份验证时显示按钮。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35983551

复制
相关文章

相似问题

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