Google認証でAngularFire2を使用すると、Firebaseアクセストークンが返されますが、ではなく、 Google APIで使用するGoogleアクセストークンが返されます。 AngularFire2認証からアクセストークンを取得する適切な方法は何ですか?AngularFire2 - Google APIのGoogle認証からのアクセストークンを使用
角度:2.4.9
Firebase:3.5.2
AngularFire:2.0.0-beta.8
ここplunkrです:
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の間で認証トークンを共有する際に問題がありますか?誰かがこの作業の例を持っていますか?
2種類のトークンを使用して2つの場所で購読しています。 'result.credential.accessToken'は正しいもので、うまくいくと思います。しかし 'auth.getToken()'は使用できません。これはFirebase IDトークン(Googleのアクセストークンではありません)を返します。 – Kato
@Kato申し訳ありませんが、私はauth.getToken()を取り出しました。私は '' 'result.credential.accessToken'''を使用しますが、403の許可が拒否されました。私のアプリがスコープを受け入れたにもかかわらず(認証方法:AngledAuthログインからのリダイレクト) –