From b11783222bc5b6f22c1fa1392d2fc8457832b000 Mon Sep 17 00:00:00 2001 From: SuperMarioDaBom Date: Wed, 21 Feb 2018 18:44:04 -0800 Subject: [PATCH 1/2] Removed game template - will re-add later Added endpoint for confirming emails - Emails aren't sent tho, so kinda useless rn --- _GAMES/SMM/run_nex_server.bat | 4 ++ _GAMES/game_server_template/package-lock.json | 3 -- _GAMES/game_server_template/run_server.bat | 4 -- _GAMES/game_server_template/server.js | 34 --------------- account.nintendo.net/routes/support/index.js | 43 +++++++++++++++++++ 5 files changed, 47 insertions(+), 41 deletions(-) create mode 100644 _GAMES/SMM/run_nex_server.bat delete mode 100644 _GAMES/game_server_template/package-lock.json delete mode 100644 _GAMES/game_server_template/run_server.bat delete mode 100644 _GAMES/game_server_template/server.js diff --git a/_GAMES/SMM/run_nex_server.bat b/_GAMES/SMM/run_nex_server.bat new file mode 100644 index 0000000..0996316 --- /dev/null +++ b/_GAMES/SMM/run_nex_server.bat @@ -0,0 +1,4 @@ +@echo off +echo Launching Super Mario Maker NEX server.... +node nex_server.js +pause \ No newline at end of file diff --git a/_GAMES/game_server_template/package-lock.json b/_GAMES/game_server_template/package-lock.json deleted file mode 100644 index 48e341a..0000000 --- a/_GAMES/game_server_template/package-lock.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lockfileVersion": 1 -} diff --git a/_GAMES/game_server_template/run_server.bat b/_GAMES/game_server_template/run_server.bat deleted file mode 100644 index 53a0fe7..0000000 --- a/_GAMES/game_server_template/run_server.bat +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -echo Launching game server.... -node server.js -pause \ No newline at end of file diff --git a/_GAMES/game_server_template/server.js b/_GAMES/game_server_template/server.js deleted file mode 100644 index 2c3d30d..0000000 --- a/_GAMES/game_server_template/server.js +++ /dev/null @@ -1,34 +0,0 @@ -////////////////////////////////////////////////////////////////// -/// /// -/// Game Server Template /// -/// /// -////////////////////////////////////////////////////////////////// - - -/////////////Packets are only received; nothing is done with them.///////////// -///////////// In order to read the data, they must be decrypted. ///////////// -///////////// This is done on a per-game basis. ///////////// - -//Game server metadata -//Put things such as port and game name here -let port = 88888, - gamename = 'game', - //don't mess with these two variables - dgram = require('dgram'); - server = dgram.createSocket('udp4'); - -function asciiToHex(packet){ - let buf = Buffer.from(packet,'ascii'); - return buf.toString('hex'); -} - -server.on('listening', function () { - var address = server.address(); - console.log(gamename + ' server listening on ' + address.address + ":" + address.port); -}); - -server.on('message', function (message, remote) { - console.log(remote.address + ':' + remote.port +' - ' + asciiToHex(message)); -}); - -server.bind(port, '0.0.0.0'); \ No newline at end of file diff --git a/account.nintendo.net/routes/support/index.js b/account.nintendo.net/routes/support/index.js index 49fb8e7..9541829 100644 --- a/account.nintendo.net/routes/support/index.js +++ b/account.nintendo.net/routes/support/index.js @@ -1,6 +1,7 @@ let routes = require('express').Router(), helpers = require('../../helpers'), constants = require('../../constants'), + database = require('../../db'), dns = require('dns'), json2xml = require('json2xml'); @@ -91,4 +92,46 @@ routes.post('/validate/email', async (request, response) => { }); +** + * [PUT] + * Replacement for: https://account.nintendo.net/v1/api/support/email_confirmation/:USERPID/:CONFIRMCODE + * Description: Confirms an email + */ +routes.put('/email_confirmation/:pid/:code', async (request, response) => { + response.set('Content-Type', 'text/xml'); + response.set('Server', 'Nintendo 3DS (http)'); + response.set('X-Nintendo-Date', new Date().getTime()); + + let user = await helpers.getUser(request.params.pid); + + if (!user) { + let error = { + errors: { + error: { + cause: 'no user found', + code: '9999', + message: 'Bad pid received; pid: ' + request.params.pid + } + } + } + return response.send(json2xml(error)); + } + + if(user.sensitive.email_confims.code == request.params.code){ + database.user_collection.update(user._id, {$set:{email.address[0].validated:'Y'}}); + }else{ + let error = { + errors: { + error: { + cause: 'Bad code', + code: '9999', + message: 'Bad code received; code: ' + request.params.code + } + } + } + return response.send(json2xml(error)); + } + +}); + module.exports = routes; From f684b966ddd2640c17203b6c89d6bcaf7c9ea08d Mon Sep 17 00:00:00 2001 From: SuperMarioDaBom Date: Wed, 21 Feb 2018 19:23:37 -0800 Subject: [PATCH 2/2] tfw the one time you didn't test your code before committing it was actually broken whoops i guess also updated some stuff but whatever --- account.nintendo.net/routes/provider/index.js | 36 ++++++++----------- account.nintendo.net/routes/support/index.js | 4 +-- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/account.nintendo.net/routes/provider/index.js b/account.nintendo.net/routes/provider/index.js index 898e2b7..8a939eb 100644 --- a/account.nintendo.net/routes/provider/index.js +++ b/account.nintendo.net/routes/provider/index.js @@ -14,17 +14,13 @@ let routes = require('express').Router(), //The game ips and ports are stored here. When the game tries to access its specific server, it will be given the respecive ip and port. let gamePort = { - supermariomaker: { - ip: '10.0.0.57', + friends: { + ip: '10.0.0.225', port: '1300' }, - mariokart8: { - ip: '10.0.0.57', + supermariomaker: { + ip: '10.0.0.225', port: '1301' - }, - supersmashbroswiiu: { - ip: '10.0.0.57', - port: '1302' } } @@ -60,24 +56,20 @@ routes.get('/nex_token/@me', async (request, response) => { let ip = null; let port = null; - console.log(request.headers['X-Nintendo-Title-ID']); + console.log(request.query.game_server_id); - switch(request.headers['X-Nintendo-Title-ID']){ - case '000500001018DC00': - ip = gamePort.supermariomaker.ip; - port = gamePort.supermariomaker.port; + switch(request.query.game_server_id){ + case '00003200': + ip = gamePort.friends.ip; + port = gamePort.friends.port; break; - case 'mariomakereur': - ip = gamePort.supermariomaker.ip; - port = gamePort.supermariomaker.port; - break; - case 'mariomakerjpn': + case '1018DB00': ip = gamePort.supermariomaker.ip; port = gamePort.supermariomaker.port; break; default: - ip = '10.0.0.57'; - port = '1300'; + ip = null; + port = null; break; } @@ -86,8 +78,8 @@ routes.get('/nex_token/@me', async (request, response) => { errors: { error: { cause: 'No game server', - code: '8068000B', - message: 'Authentication::UnderMaintenance (No server found)' + code: '9999', + message: 'No server found' } } } diff --git a/account.nintendo.net/routes/support/index.js b/account.nintendo.net/routes/support/index.js index 9541829..f73ea8d 100644 --- a/account.nintendo.net/routes/support/index.js +++ b/account.nintendo.net/routes/support/index.js @@ -92,7 +92,7 @@ routes.post('/validate/email', async (request, response) => { }); -** +/** * [PUT] * Replacement for: https://account.nintendo.net/v1/api/support/email_confirmation/:USERPID/:CONFIRMCODE * Description: Confirms an email @@ -118,7 +118,7 @@ routes.put('/email_confirmation/:pid/:code', async (request, response) => { } if(user.sensitive.email_confims.code == request.params.code){ - database.user_collection.update(user._id, {$set:{email.address[0].validated:'Y'}}); + database.user_collection.update(user._id, {$set:{'address[0].validated':'Y'}}); }else{ let error = { errors: {