initial commit of poker game
This commit is contained in:
82
game-server/app/servers/game/remote/authRemote.js
Normal file
82
game-server/app/servers/game/remote/authRemote.js
Normal file
@@ -0,0 +1,82 @@
|
||||
var UserStore = require('../../../persistence/users');
|
||||
var tokenService = require('../../../../../shared/token');
|
||||
var SESSION_CONFIG = require('../../../../../shared/config/session.json');
|
||||
|
||||
module.exports = function(app){
|
||||
return new Remote(app);
|
||||
};
|
||||
var Remote = function(app){
|
||||
this.app = app;
|
||||
};
|
||||
var remote = Remote.prototype;
|
||||
|
||||
/**
|
||||
* Register user.
|
||||
*
|
||||
* @param {object} userObj object containing userObj.user and userObj.pass
|
||||
* @param {Function} cb
|
||||
* @return {Void}
|
||||
*/
|
||||
remote.register = function(userObj, cb){
|
||||
UserStore.create({
|
||||
username : userObj.username,
|
||||
password : userObj.password,
|
||||
email : userObj.email,
|
||||
chips : 100000
|
||||
}, function(e, user){
|
||||
if(e){
|
||||
cb(e);
|
||||
}else{
|
||||
cb(null, user);
|
||||
}
|
||||
});
|
||||
};
|
||||
/**
|
||||
* Auth via user/pass or token, and check for expiry.
|
||||
*
|
||||
* @param {object|string} input token or object containing username and password
|
||||
* @param {Function} cb
|
||||
* @return {Void}
|
||||
*/
|
||||
remote.auth = function(input, cb){
|
||||
if(typeof input === 'string'){
|
||||
var res = tokenService.parse(input, SESSION_CONFIG.secret);
|
||||
if(!res){
|
||||
cb('invalid-token');
|
||||
return;
|
||||
}
|
||||
if(!checkExpire(res, SESSION_CONFIG.expire)){
|
||||
cb('token-expired');
|
||||
return;
|
||||
}
|
||||
UserStore.getByAttr('id', res.uid, false, function(e, user){
|
||||
if(e){
|
||||
cb('invalid-user');
|
||||
return;
|
||||
}
|
||||
cb(null, user);
|
||||
});
|
||||
}else{
|
||||
UserStore.getByAttr(['username', 'password'], [input.username, input.password], false, function(e, user){
|
||||
if(!user){
|
||||
cb('invalid-user');
|
||||
}else{
|
||||
cb(null, user, tokenService.create(user.id, Date.now(), SESSION_CONFIG.secret));
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
/**
|
||||
* Check the token whether expire.
|
||||
*
|
||||
* @param {Object} token token info
|
||||
* @param {Number} expire expire time
|
||||
* @return {Boolean} true for not expire and false for expire
|
||||
*/
|
||||
var checkExpire = function(token, expire){
|
||||
if(expire < 0){
|
||||
// negative expire means never expire
|
||||
return true;
|
||||
}
|
||||
return (Date.now() - token.timestamp) < expire;
|
||||
};
|
22
game-server/app/servers/game/remote/tableRemote.js
Normal file
22
game-server/app/servers/game/remote/tableRemote.js
Normal file
@@ -0,0 +1,22 @@
|
||||
module.exports = function(app){
|
||||
return new Remote(app);
|
||||
};
|
||||
var Remote = function(app){
|
||||
this.app = app;
|
||||
this.tableService = app.get('tableService');
|
||||
};
|
||||
var remote = Remote.prototype;
|
||||
|
||||
/**
|
||||
* Remove member/player from table
|
||||
*
|
||||
* @param {string} uid user id
|
||||
* @param {string} sid server id
|
||||
* @param {string} tid channel id
|
||||
* @param {function} cb callback
|
||||
*
|
||||
*/
|
||||
remote.removeMember = function(uid, sid, tid, cb){
|
||||
this.tableService.removeMember(tid, uid, cb);
|
||||
};
|
||||
|
Reference in New Issue
Block a user