emberfire auth + cordova

时间:2017-04-23 10:58:29

标签: cordova authentication emberfire torii

据我了解,emberfire auth通过torii工作,并包含自己的torii-provider(torii-providers/firebase.js)。

当我尝试登录时,它会从firebase提供程序运行signInWithPopup方法。当应用程序通过cordova在移动设备上运行时,它不起作用(location.protocol等于"file:")。

我找到了解决方法:

  1. 我使用cordova插件通过谷歌授权获取idToken。

  2. 我已覆盖提供商以使用signInWithCredential

    export default ToriiFirebaseProvider.extend({
      open(idToken) {
        const firebaseApp = get(this, 'firebaseApp');
        const credentials = get(firebaseApp, 'firebase_.auth.GoogleAuthProvider.credential')(idToken);
        return firebaseApp.auth().signInWithCredential(credentials);
      }
    });
    
  3. 现在有效,但我不确定这是正确的解决方案吗?

1 个答案:

答案 0 :(得分:0)

那么,你想要一个重定向而不是一个弹出窗口? 如果这是你想要的,只需设置重定向选项:

this.get('session').open('firebase', { provider:'google', redirect: true })