0
我使用离子和angularjs的凭据验证工作,我想要的是当用户已经登录然后去成员页面,当有请求http后/ get/else我想添加http头部请求,我是成功的,如果不使用SQLite,但当我改变我的代码使用SQLite(ngCordova插件)我得到错误。它在我的Xcode日志中没有任何信息返回空白。 这里的代码sqlite ngCordova使用离子返回空白
//app.js
'use strict';
var db = null;
angular.module('logiseraApp', ['ionic','ngCordova'])
.run(function($ionicPlatform, $cordovaSQLite) {
$ionicPlatform.ready(function() {
//SQLite database
db = $cordovaSQLite.openDB("my.db", 1);
//create tables
db.transaction(function(tx) {
//create session table
tx.executeSql('CREATE TABLE IF NOT EXISTS session (id integer primary key, name varchar(50), value text)');
}, function(e) {
console.log("ERROR: " + e.message);
});
});
})
//this is my focus error
//i check if session is not empty
//and fetch user data then store to config.headers
//there is no error if i"m not using sqlite
.factory('authInterceptor', function($location, $q, $cordovaSQLite) {
return {
request: function(config) {
config.headers = config.headers || {};
var query = "SELECT value from session where name = ? limit 1";
$cordovaSQLite.execute(db, query, ["userdata"]).then(function(res) {
if(res.rows.length > 0){
console.log("result length", res.rows.length);
var userdata = JSON.parse(res.rows.item(0).value);
//apache
//config.headers.token_user_id = userdata.user_id;
//nginx
config.headers['Token-User-Id'] = userdata.user_id;
}
}, function (err) {
console.error(err);
});
return config;
}
};
})
.config(function($stateProvider, $urlRouterProvider, $httpProvider) {
$httpProvider.interceptors.push('authInterceptor');
});
谢谢