使用firebase从父窗口调用Angular iframe函数

时间:2018-11-14 04:09:13

标签: angular typescript firebase iframe cross-domain

我有一个项目希望将其用作跨域服务,以集中来自不同网站的用户。

示例:

跨域服务(CDS):https://cross-domain-services.firebaseapp.com/auth

我的网站a.com和网站b.com将使用iframe调用CDS来登录匿名用户。这样我就可以知道同一个用户访问了website-a.com,还访问了website-b.com

CDS在auth.component.ts中的功能是getUserId,它将返回一个userId

示例代码:

getUserId(){
    return new Promise(resolve=>{
      this.firebase.auth.onAuthStateChanged(user => {
        if (user) {
          this.currentUser = this.firebase.auth.currentUser
          resolve(this.currentUser.uid)
        }
      })
    })
  }

但是,我现在停留在我的网站a.com和网站b.com上,不知道如何调用getUserId()并获取各自的价值。

我尝试根据this post使用以下方法,但是遇到错误:

代码:

(<HTMLIFrameElement>document.getElementById("auth-iframe")).contentWindow.getUserId().then(data=>{
      console.log(data)
    })

错误:TypeError: document.getElementById(...).contentWindow.getUserId

注意:我的website-a.com,website-b.com和CDS都是用角度6构建的

请帮助我..谢谢...

0 个答案:

没有答案