2016-06-24 49 views
3

我需要使用javascript用重火力浅REST调用REST API,在过去的版本,我需要通过访问令牌这样的火力点3:如何获得的accessToken使用JavaScript的

var authKey = ref.getAuth().token; 
    var s = firebaseUrl + '/.json?shallow=true&auth=' + authKey; 
    $http.get(s) 

怎么办我现在用firebase 3做这个吗?

回答

4
firebase.auth().signInWithEmailAndPassword(u, p).then(function(result){ 

    result.getToken().then(function(token){ 
     $rootScope.userLoginToken = token; 
    }); 

}); 
1

当您使用SDK的版本3.x时,访问令牌在authData中不再可用。但你可以得到的是当用户获得认证。

var auth = firebase.auth(); 

var provider = new firebase.auth.GoogleAuthProvider(); 
auth.signInWithPopup(provider).then(function(result) { 
    var accessToken = result.credential.accessToken; 
}); 

对于这一点,很多更多信息迁移您的Web应用程序时是相关的,看到upgrade guide for web apps(其中我复制从代码)。

+0

弗兰克我似乎无法得到result.credential使用firebase.auth()。signInWithEmailAndPassword(),我需要使用另一种方法吗?我正在使用电子邮件/密码验证方法 – Stradosphere

+1

当您使用电子邮件和密码时,没有访问令牌。这听起来像你可能正在寻找@ stradosphere的答案。 –

+0

现在'credential.accessToken'只在登录流程中暴露出来,现在没有限制吗?如果用户已经通过身份验证,则登录例程从不运行,而应用程序使用已保存的身份验证数据。 –

相关问题