在我的项目中,我正在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'});
}
如果有人可以帮助我,我将不胜感激
答案 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.
}
不完全确定这是否是技术上最“正确”的获取令牌的方式,但它应该适合你。