簡體   English   中英

聚合物組件Google登錄無法觸發事件?

[英]Polymer component google-signin not firing events?

我已經使用Polymer-cli 1.7創建了一個新的入門工具包項目,並且嘗試使用google-signin元素添加Google身份驗證。

顯示登錄按鈕,我可以使用它登錄,但是未設置signedIn屬性,並且未觸發事件(例如, is-authorized-changed )。

首次加載頁面時,兩次被兩次is-authorized-changed會被觸發,但是當我登錄或注銷時,不會再次觸發。

...
<link rel="import" href="../bower_components/google-signin/google-signin.html">
...
<dom-module id="cx-dashboard">
  <template>
    <style>
      ...
    </style>

    <app-location route="{{route}}"></app-location>
    <app-route route="{{route}}" pattern="/:page" data="{{routeData}}" tail="{{subroute}}"></app-route>
    <app-drawer-layout fullbleed force-narrow="true">
      <!-- Drawer content -->
      <app-drawer>
        <app-toolbar>Menu</app-toolbar>
        <iron-selector selected="[[page]]" attr-for-selected="name" class="drawer-list" role="navigation">

          <a name="view1" href="/view1">View1</a>
          <a name="view2" href="/view2">View2</a>
        </iron-selector>
      </app-drawer>
      <!-- Main content -->
      <app-header-layout has-scrolling-region>
        <app-header condenses reveals effects="waterfall">
          <app-toolbar>
            <paper-icon-button icon="menu" drawer-toggle></paper-icon-button>
            <div main-title>Dashboard</div>
            {{signedIn}}
            <google-signin client-id="my-client-id" hosted-domain="mydomain"
            signed-in="{{signedIn}}"></google-signin>
          </app-toolbar>
        </app-header>
        <iron-pages selected="[[page]]" attr-for-selected="name" fallback-selection="view404" role="main">
          <my-view1 name="view1"></my-view1>
          <my-view2 name="view2"></my-view2>
          <my-view3 name="view3"></my-view3>
          <my-view404 name="view404"></my-view404>
        </iron-pages>
      </app-header-layout>
    </app-drawer-layout>
  </template>
  <script>
    Polymer({
      is: 'cx-dashboard',

      properties: {
        page: {
          type: String,
          reflectToAttribute: true,
          observer: '_pageChanged'
        }
      },
      listeners: {
        'is-authorized-changed': '_handleAuthChange',
        'google-signin-success': '_signInSuccess',
        'google-signed-out': '_signedOut',
        'google-signin-aware-success': '_signInSuccess'
      },
      observers: [
        '_routePageChanged(routeData.page)'
      ],

      _routePageChanged: function(page) {
        this.page = page || 'view1';
      },

      _pageChanged: function(page) {
        // Load page import on demand. Show 404 page if fails
        var resolvedPageUrl = this.resolveUrl('my-' + page + '.html');
        this.importHref(resolvedPageUrl, null, this._showPage404, true);
      },

      _showPage404: function() {
        this.page = 'view404';
      },
      _signInNecessary: function() {
        console.log('_signInNecessary')
      },
      _signInSuccess: function() {
        console.log('_signInSuccess')
      },
      _signedOut: function() {
        console.log('_signedOut')
      },
      _handleAuthChange: function(event) {
        console.log('_handleAuthChange', event)
      }
    });
  </script>
</dom-module>

問題是我沒有在Google控制台中配置正確的端口。

感謝@ tony19作為工作示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM