首页 文章

AngularFire2 - 使用Google Auth的访问令牌获取Google API

提问于
浏览
1

通过AngularFire2进行的Google身份验证会返回Firebase访问令牌,但不会返回用于Google API的Google访问令牌 . 从AngularFire2 auth获取访问令牌的正确方法是什么?

Angular:2.4.9

Firebase:3.5.2

AngularFire:2.0.0-beta.8

这是一个傻瓜:

http://plnkr.co/edit/qIbtcp?p=preview

你会在构造函数中注意到:

constructor(af: AngularFire, public auth$: AngularFireAuth, public http:Http) {

      auth$.subscribe((state: FirebaseAuthState) => {
        if(state){
          this.signedIn = true
        }
    });

    firebase.auth()
      .getRedirectResult()
      .then((result) => {
        console.log('result', result);
        if (result.credential) {
          // This gives you a Google Access Token.
          var token = result.credential.accessToken;
          console.log('token',token)
          this.getPeople(token)
          .subscribe(
            people => console.log('people',people),
            error =>  console.log(error)); 
        }
        var user = result.user;
      })
      .catch(err => console.log(err));
  }

我在哪里调用firebase.auth()是我尝试获取Google Access令牌的地方 . 但是,首次登录时,我收到此错误:

{
error: {
code: 403,
message: "Request had insufficient authentication scopes.",
status: "PERMISSION_DENIED"
}
}

我知道这不应该发生,因为我在严格的Firebase(没有AngularFire2)中尝试了相同的设置,在这个例子中:

https://embed.plnkr.co/zxOfRZ1PDDb7ee5qzIKW/

那么在AngularFire和Firebase之间共享auth令牌是否存在问题?有没有人有这个工作的例子?

1 回答

相关问题