ozserver
Version:
API for OZ
63 lines (52 loc) • 1.59 kB
JavaScript
var Auth, Token, User, exports, mongoose;
Token = require('token');
mongoose = require('mongoose');
User = mongoose.model('User', require(global.home + '/script/views/db/user'));
Auth = (function() {
function Auth(req, res) {
this.req = req;
this.res = res;
}
Auth.prototype.user = function(callback) {
var _this = this;
return User.findOne({
id: this.req.session.user.id != null ? this.req.session.user.id : '',
key: this.req.session.user.key != null ? this.req.session.user.key : '',
disabled: false
}, function(err, user) {
var error;
if (err) {
throw err;
}
error = null;
if (user == null) {
error = 'Пользователь не найден';
}
if ((_this.req.session.user.id == null) || (_this.req.session.user.key == null)) {
error = 'Cессия не активна';
}
if (user == null) {
user = {};
}
if (callback) {
return callback(error, user);
}
});
};
Auth.prototype.verifyToken = function() {
if ((this.req.session.user != null) && (this.req.query.token != null)) {
if ((this.req.session.user.id != null) && (this.req.session.user.key != null)) {
return Token.verify("" + this.req.session.id + "|{@req.session.user.id}|" + this.req.session.user.key, this.req.query.token);
} else {
return false;
}
} else {
return false;
}
};
return Auth;
})();
exports = module.exports = function(req, res) {
return new Auth(req, res);
};
exports.Auth = Auth;