Remove middleware to secure access API.
This commit is contained in:
parent
029a7a9a64
commit
69777ad1cb
@ -6,27 +6,28 @@ import {Application, Request, Response} from 'express';
|
|||||||
import bodyParser = require('body-parser');
|
import bodyParser = require('body-parser');
|
||||||
import * as http from "http";
|
import * as http from "http";
|
||||||
import {MapController} from "./Controller/MapController";
|
import {MapController} from "./Controller/MapController";
|
||||||
import {AuthenticateMiddleware} from "./Middleware/AuthenticateMiddleware";
|
|
||||||
|
|
||||||
class App {
|
class App {
|
||||||
public app: Application;
|
public app: Application;
|
||||||
public server: http.Server;
|
public server: http.Server;
|
||||||
public ioSocketController: IoSocketController;
|
public ioSocketController: IoSocketController;
|
||||||
public authenticateController: AuthenticateController;
|
public authenticateController: AuthenticateController;
|
||||||
//public AuthenticateMiddleware: AuthenticateMiddleware;
|
|
||||||
public mapController: MapController;
|
public mapController: MapController;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.app = express();
|
this.app = express();
|
||||||
|
|
||||||
//config server http
|
//config server http
|
||||||
this.config();
|
|
||||||
this.server = http.createServer(this.app);
|
this.server = http.createServer(this.app);
|
||||||
|
|
||||||
|
this.config();
|
||||||
|
this.crossOrigin();
|
||||||
|
|
||||||
|
//TODO add middleware with access token to secure api
|
||||||
|
|
||||||
//create socket controllers
|
//create socket controllers
|
||||||
this.ioSocketController = new IoSocketController(this.server);
|
this.ioSocketController = new IoSocketController(this.server);
|
||||||
this.authenticateController = new AuthenticateController(this.app);
|
this.authenticateController = new AuthenticateController(this.app);
|
||||||
//this.AuthenticateMiddleware = new AuthenticateMiddleware(this.app);
|
|
||||||
this.mapController = new MapController(this.app);
|
this.mapController = new MapController(this.app);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,9 +35,15 @@ class App {
|
|||||||
private config(): void {
|
private config(): void {
|
||||||
this.app.use(bodyParser.json());
|
this.app.use(bodyParser.json());
|
||||||
this.app.use(bodyParser.urlencoded({extended: false}));
|
this.app.use(bodyParser.urlencoded({extended: false}));
|
||||||
|
}
|
||||||
|
|
||||||
|
private crossOrigin(){
|
||||||
this.app.use((req: Request, res: Response, next) => {
|
this.app.use((req: Request, res: Response, next) => {
|
||||||
res.header("Access-Control-Allow-Origin", "*"); // update to match the domain you will make the request from
|
res.setHeader("Access-Control-Allow-Origin", "*"); // update to match the domain you will make the request from
|
||||||
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
|
// Request methods you wish to allow
|
||||||
|
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
|
||||||
|
// Request headers you wish to allow
|
||||||
|
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import express from "express";
|
import express from "express";
|
||||||
import path from "path";
|
|
||||||
import {Application, Request, Response} from "express";
|
import {Application, Request, Response} from "express";
|
||||||
import {OK} from "http-status-codes";
|
import {OK} from "http-status-codes";
|
||||||
import {ROOM_STARTED, ROOMS, URL_ROOM_STARTED} from "../Enum/EnvironmentVariable";
|
import {ROOM_STARTED, ROOMS, URL_ROOM_STARTED} from "../Enum/EnvironmentVariable";
|
||||||
@ -9,7 +8,7 @@ export class MapController {
|
|||||||
|
|
||||||
constructor(App: Application) {
|
constructor(App: Application) {
|
||||||
this.App = App;
|
this.App = App;
|
||||||
this.getMpas();
|
this.getMaps();
|
||||||
this.assetMaps();
|
this.assetMaps();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
import {Application, Request, Response} from "express";
|
|
||||||
import {BAD_REQUEST} from "http-status-codes";
|
|
||||||
import Jwt, {JsonWebTokenError} from "jsonwebtoken";
|
|
||||||
import {SECRET_KEY} from "../Enum/EnvironmentVariable";
|
|
||||||
|
|
||||||
export class AuthenticateMiddleware{
|
|
||||||
App: Application;
|
|
||||||
|
|
||||||
constructor(App: Application) {
|
|
||||||
this.App = App;
|
|
||||||
this.tokenVerification();
|
|
||||||
}
|
|
||||||
|
|
||||||
tokenVerification() {
|
|
||||||
this.App.use((req: Request, res: Response, next: any) => {
|
|
||||||
let token = req.header("Access-Token");
|
|
||||||
if (!token) {
|
|
||||||
return res.status(BAD_REQUEST).send({
|
|
||||||
message: "you must to be connected to get the map"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return Jwt.verify(token, SECRET_KEY, (err: JsonWebTokenError, tokenDecoded: object) => {
|
|
||||||
if (err) {
|
|
||||||
return res.status(BAD_REQUEST).send({
|
|
||||||
message: "you must to be connected to get the map"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return next();
|
|
||||||
});
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,7 +2,7 @@ import {GameManager} from "./Phaser/Game/GameManager";
|
|||||||
|
|
||||||
const SocketIo = require('socket.io-client');
|
const SocketIo = require('socket.io-client');
|
||||||
import Axios from "axios";
|
import Axios from "axios";
|
||||||
import {API_URL, ROOM} from "./Enum/EnvironmentVariable";
|
import {API_URL} from "./Enum/EnvironmentVariable";
|
||||||
|
|
||||||
enum EventMessage{
|
enum EventMessage{
|
||||||
WEBRTC_SIGNAL = "webrtc-signal",
|
WEBRTC_SIGNAL = "webrtc-signal",
|
||||||
@ -212,8 +212,10 @@ export class Connexion implements ConnexionInterface {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO add middleware with access token to secure api
|
||||||
loadMaps() : Promise<any> {
|
loadMaps() : Promise<any> {
|
||||||
return Axios.get(`${API_URL}/maps`).then((res) => {
|
return Axios.get(`${API_URL}/maps`)
|
||||||
|
.then((res) => {
|
||||||
return res.data;
|
return res.data;
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
|
@ -93,17 +93,19 @@ export class LogincScene extends Phaser.Scene implements GameSceneInterface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async login(name: string) {
|
private async login(name: string) {
|
||||||
Promise.all([
|
return gameManager.connect(name, this.selectedPlayer.texture.key).then(() => {
|
||||||
gameManager.connect(name, this.selectedPlayer.texture.key),
|
return gameManager.loadMaps().then((scene : any) => {
|
||||||
gameManager.loadMaps()
|
if (!scene) {
|
||||||
]).then((data) => {
|
|
||||||
if (!data) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let scene: any = data[1];
|
|
||||||
let game = new GameScene(scene.mapStart.key, `${API_URL}${scene.mapStart.url}`);
|
let game = new GameScene(scene.mapStart.key, `${API_URL}${scene.mapStart.url}`);
|
||||||
this.scene.add(scene.mapStart.key, game, false);
|
this.scene.add(scene.mapStart.key, game, false);
|
||||||
this.scene.start(scene.mapStart.key);
|
this.scene.start(scene.mapStart.key);
|
||||||
|
return scene;
|
||||||
|
}).catch((err) => {
|
||||||
|
console.error(err);
|
||||||
|
throw err;
|
||||||
|
});
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
throw err;
|
throw err;
|
||||||
|
Loading…
Reference in New Issue
Block a user