authwithcustomtoken不工作

时间:2015-04-17 12:24:58

标签: angularjs node.js firebase

在我的项目中,我正在node.js中编写e2e测试,我有一个我正在使用的测试firebase。所以我在测试运行中的每个描述之前在节点中创建一个令牌,然后我将它发送到前端(angular.js)然后我使用authWithCustomToken函数来验证该人。

问题是由于某种原因它甚至不调用该函数,因为我在回调中放了一个console.log语句,每次我的代码运行它都会进入if $ location.search条件但是console.log没有打印出任何东西。我似乎不知道问题是什么。

var Firebase = require('firebase');
var FirebaseTokenGenerator = require('firebase-token-generator');
var rootRef = new Firebase('https://xxxxx');
var data = require('./data_helper.js');

rootRef.child('users').set(data.users[0]);

var credentials =  {
  nonAdmin: {
    uid: 'google', 
    email: 'xxxx'
  },
  admin: {
    uid: 'google', 
    email: 'xxxxx'
  }
};


var logInAndThen = function(options) {
  var secret = 'sdmdfmdsjwdsjwjwwewewe';
  var tokenGenerator = new FirebaseTokenGenerator(secret);
  var token = tokenGenerator.createToken(credentials[options.userType || 'admin']);

  browser.get('/login?token=' + token);

  var alertDiv = by.className('alert');
  //browser.wait(function(){});
  var waitOnFirebase = browser.wait(function() {
    return browser.isElementPresent(alertDiv);
  });

  waitOnFirebase.then(function(data) {
    console.log('-------', data);
    options.cb(data);
  });
};

module.exports = logInAndThen;

---------前端角色代码在APPLICATION.RUN ---------------------

if($location.search().token) {
    console.log(Refs.root.toString());  
    Refs.root.authWithCustomToken($location.search().token, function(err, authData) { 
      console.log(err,authData);
    }, {scope: 'email'});
  }

如果有人可以帮助我,我将不胜感激

1 个答案:

答案 0 :(得分:0)

尝试获取此类令牌(将其放入.run):

    var loc = $location.path();
    if(loc.search('login?token') > 0) {
      token = loc.splice(13)
      //now incorporate the 'token' into whatever auth functions you need to.
    }

不完全确定这是否是技术上最“正确”的获取令牌的方式,但它应该适合你。