AngularFire2 - 使用来自 Google Auth 的访问令牌用于 Google API
AngularFire2 - using access token from Google Auth for Google APIs
Google 身份验证通过 AngularFire2 returns Firebase 访问令牌,但 不是 使用 Google 访问令牌在 Google 个 API 上。从 AngularFire2 身份验证获取访问令牌的正确方法是什么?
Angular: 2.4.9
Firebase: 3.5.2
Angular火: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 访问令牌的地方。但是在第一次登录时,我收到此错误:
{
error: {
code: 403,
message: "Request had insufficient authentication scopes.",
status: "PERMISSION_DENIED"
}
}
我知道这不应该发生,因为我尝试使用严格的 Firebase 进行相同的设置(没有 AngularFire2),在这个例子中:
https://embed.plnkr.co/zxOfRZ1PDDb7ee5qzIKW/
那么在 AngularFire 和 Firebase 之间共享身份验证令牌是否存在问题?有人有这个工作的例子吗?
在 Whosebug 上发现了类似的问题:
我最终使用了相同的方法,看来您需要手动使用 Google API 的 Javascript 客户端,并使用该凭据通过 Firebase 登录.
Google 身份验证通过 AngularFire2 returns Firebase 访问令牌,但 不是 使用 Google 访问令牌在 Google 个 API 上。从 AngularFire2 身份验证获取访问令牌的正确方法是什么?
Angular: 2.4.9
Firebase: 3.5.2
Angular火: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 访问令牌的地方。但是在第一次登录时,我收到此错误:
{
error: {
code: 403,
message: "Request had insufficient authentication scopes.",
status: "PERMISSION_DENIED"
}
}
我知道这不应该发生,因为我尝试使用严格的 Firebase 进行相同的设置(没有 AngularFire2),在这个例子中:
https://embed.plnkr.co/zxOfRZ1PDDb7ee5qzIKW/
那么在 AngularFire 和 Firebase 之间共享身份验证令牌是否存在问题?有人有这个工作的例子吗?
在 Whosebug 上发现了类似的问题:
我最终使用了相同的方法,看来您需要手动使用 Google API 的 Javascript 客户端,并使用该凭据通过 Firebase 登录.