initial commit of poker game
This commit is contained in:
23
shared/config/authCodes.json
Normal file
23
shared/config/authCodes.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"OK" : 200,
|
||||
"FAILED" : 500,
|
||||
"BAD_REQUEST" : 400,
|
||||
"UNAUTHORIZED" : 401,
|
||||
"FORBIDDEN" : 403,
|
||||
"ENTRY" : {
|
||||
"TOKEN_INVALID" : 1001,
|
||||
"TOKEN_EXPIRE" : 1002,
|
||||
"USER_NOT_EXIST" : 1003
|
||||
},
|
||||
|
||||
"GATE" : {
|
||||
"NO_SERVER_AVAILABLE" : 2001
|
||||
},
|
||||
|
||||
"CHAT" : {
|
||||
"CHANNEL_CREATE" : 3001,
|
||||
"CHANNEL_NOT_EXIST" : 3002,
|
||||
"UNKNOWN_CONNECTOR" : 3003,
|
||||
"USER_NOT_ONLINE" : 3004
|
||||
}
|
||||
}
|
4
shared/config/session.json
Normal file
4
shared/config/session.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"secret": "poker-game-session-secret",
|
||||
"expire": 21600000
|
||||
}
|
15
shared/server.crt
Normal file
15
shared/server.crt
Normal file
@@ -0,0 +1,15 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICSzCCAbQCCQCQVN8rD6MylDANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQGEwJD
|
||||
TjERMA8GA1UECAwIemhlamlhbmcxETAPBgNVBAcMCGhhbmd6aG91MRAwDgYDVQQK
|
||||
DAdOZXRFYXNlMQ8wDQYDVQQLDAZwb21lbG8xEjAQBgNVBAMMCWxvY2FsaG9zdDAe
|
||||
Fw0xNDA0MjIwNjEwMDJaFw0xNDA1MjIwNjEwMDJaMGoxCzAJBgNVBAYTAkNOMREw
|
||||
DwYDVQQIDAh6aGVqaWFuZzERMA8GA1UEBwwIaGFuZ3pob3UxEDAOBgNVBAoMB05l
|
||||
dEVhc2UxDzANBgNVBAsMBnBvbWVsbzESMBAGA1UEAwwJbG9jYWxob3N0MIGfMA0G
|
||||
CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMPe8oscKpTlQFZRrpbWmSO1UE+H65nq50
|
||||
l5+ptOVPMK3wgEj+YRyGWhBjugj9teVmLXY9ImWdZkBlvdAiQj7/S/1MxRbRtwEF
|
||||
GRE5ul/X1M6I+F0UyTGYA1Mo0jIlQaBDXAAyDujCWi+qlyZ28efNDUlO2KBY1H4r
|
||||
Xobm9hoEFQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAMIuL8KqEEtjbfL/tR2+5dQ5
|
||||
958gtDtA62L7bMosl4hmuzdyWADu3IcKSaXAESLhIuIClt2Pwc14iFf9qRyB/cjY
|
||||
4kLgwDGhK5EJw1kQS+Hs9NNSGxJTXUkoms3kEdRGy4hrZpTheJJNaKuv3oXrdvYQ
|
||||
85yoc/P5OnJapB3huYL9
|
||||
-----END CERTIFICATE-----
|
15
shared/server.key
Normal file
15
shared/server.key
Normal file
@@ -0,0 +1,15 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICWwIBAAKBgQDMPe8oscKpTlQFZRrpbWmSO1UE+H65nq50l5+ptOVPMK3wgEj+
|
||||
YRyGWhBjugj9teVmLXY9ImWdZkBlvdAiQj7/S/1MxRbRtwEFGRE5ul/X1M6I+F0U
|
||||
yTGYA1Mo0jIlQaBDXAAyDujCWi+qlyZ28efNDUlO2KBY1H4rXobm9hoEFQIDAQAB
|
||||
AoGAXhaeCUIyqeoynLWh+yzzOHFqzjpnrr0iIwYCgJycEqobRzLh7YXxLRdqe3al
|
||||
U7Oq9TI2SR2CcEs9mWEi89VOzVvfu+4zRlvJLMzNjG8ncdvzmzWR288ORq6qmYVU
|
||||
3KAEz/tbNaQMLrD43hkIb9BrSIb/cnwekl3pANo9dwytU5UCQQD4V6vTyzs/ob21
|
||||
+fO98tFkPtoHbt43S/1kDBSUyh6WWbS1KIQgtUSr2P5Ddtl6/vD3DW+XHCAhxyfV
|
||||
vuDvaP/fAkEA0oomFfmlpvzYejYNKPOz2PR+M0oRFVwn7lYyNwbRtUK1JYOMHwJ/
|
||||
3gwQEgAcYEkvgRlsxX0T5vHNmoR3U3OqiwJAIWkiG9devDvVWxMqoKZ3V0ZBbPiU
|
||||
etoFWB1r82yR2uZssmamCAR7HaeO5aKqtapw3rv3BFxrUkAJ8u7AMlVs/wJAVnpm
|
||||
MGqNjyyWIoSnHSYUvk2WtKx8neBvimcfUxja9HAFBfaljGszaFpeE3a2MRp+h7GQ
|
||||
ywGYNikmAYzdkoqVBwJAcOm/6u863pD2xA1mSFnmm3TulAMBfCULLdcY40w9m38b
|
||||
D89R1ISEy//N1fWa4KTsM0GpVOowEyluc53XNRUghw==
|
||||
-----END RSA PRIVATE KEY-----
|
42
shared/token.js
Normal file
42
shared/token.js
Normal file
@@ -0,0 +1,42 @@
|
||||
var crypto = require('crypto');
|
||||
|
||||
/**
|
||||
* Create token by uid. Encrypt uid and timestamp to get a token.
|
||||
*
|
||||
* @param {String} uid user id
|
||||
* @param {String|Number} timestamp
|
||||
* @param {String} pwd encrypt password
|
||||
* @return {String} token string
|
||||
*/
|
||||
module.exports.create = function(uid, timestamp, pwd){
|
||||
var msg = uid + '|' + timestamp;
|
||||
var cipher = crypto.createCipher('aes256', pwd);
|
||||
var enc = cipher.update(msg, 'utf8', 'hex');
|
||||
enc += cipher.final('hex');
|
||||
return enc;
|
||||
};
|
||||
|
||||
/**
|
||||
* Parse token to validate it and get the uid and timestamp.
|
||||
*
|
||||
* @param {String} token token string
|
||||
* @param {String} pwd decrypt password
|
||||
* @return {Object} uid and timestamp that exported from token. null for illegal token.
|
||||
*/
|
||||
module.exports.parse = function(token, pwd){
|
||||
var decipher = crypto.createDecipher('aes256', pwd);
|
||||
var dec;
|
||||
try{
|
||||
dec = decipher.update(token, 'hex', 'utf8');
|
||||
dec += decipher.final('utf8');
|
||||
} catch(err){
|
||||
console.error('[token] fail to decrypt token. %j', token);
|
||||
return null;
|
||||
}
|
||||
var ts = dec.split('|');
|
||||
if(ts.length !== 2){
|
||||
// illegal token
|
||||
return null;
|
||||
}
|
||||
return {uid: ts[0], timestamp: Number(ts[1])};
|
||||
};
|
Reference in New Issue
Block a user