fix(core): update
This commit is contained in:
@@ -5,7 +5,6 @@ import * as interfaces from './interfaces';
|
||||
import { Smartsocket } from './smartsocket.classes.smartsocket';
|
||||
import { SocketFunction } from './smartsocket.classes.socketfunction';
|
||||
import { SocketRequest, ISocketRequestDataObject } from './smartsocket.classes.socketrequest';
|
||||
import { SocketRole } from './smartsocket.classes.socketrole';
|
||||
|
||||
// socket.io
|
||||
import * as pluginsTyped from './smartsocket.pluginstyped';
|
||||
@@ -25,7 +24,6 @@ export type TSocketConnectionSide = 'server' | 'client';
|
||||
export interface ISocketConnectionConstructorOptions {
|
||||
alias: string;
|
||||
authenticated: boolean;
|
||||
role: SocketRole;
|
||||
side: TSocketConnectionSide;
|
||||
smartsocketHost: Smartsocket | SmartsocketClient;
|
||||
socket: SocketIO.Socket | SocketIOClient.Socket;
|
||||
@@ -35,9 +33,7 @@ export interface ISocketConnectionConstructorOptions {
|
||||
* interface for authentication data
|
||||
*/
|
||||
export interface ISocketConnectionAuthenticationObject {
|
||||
role: 'coreflowContainer';
|
||||
password: 'somePassword';
|
||||
alias: 'coreflow1';
|
||||
alias: string;
|
||||
}
|
||||
|
||||
// export classes
|
||||
@@ -50,7 +46,6 @@ export class SocketConnection {
|
||||
public alias: string;
|
||||
public side: TSocketConnectionSide;
|
||||
public authenticated: boolean = false;
|
||||
public role: SocketRole;
|
||||
public smartsocketRef: Smartsocket | SmartsocketClient;
|
||||
public socket: SocketIO.Socket | SocketIOClient.Socket;
|
||||
|
||||
@@ -64,7 +59,6 @@ export class SocketConnection {
|
||||
constructor(optionsArg: ISocketConnectionConstructorOptions) {
|
||||
this.alias = optionsArg.alias;
|
||||
this.authenticated = optionsArg.authenticated;
|
||||
this.role = optionsArg.role;
|
||||
this.side = optionsArg.side;
|
||||
this.smartsocketRef = optionsArg.smartsocketHost;
|
||||
this.socket = optionsArg.socket;
|
||||
@@ -134,24 +128,23 @@ export class SocketConnection {
|
||||
public authenticate() {
|
||||
const done = plugins.smartpromise.defer();
|
||||
this.socket.on('dataAuth', async (dataArg: ISocketConnectionAuthenticationObject) => {
|
||||
logger.log('info', 'received authentication data. now hashing and comparing...');
|
||||
logger.log('info', 'received authentication data...');
|
||||
this.socket.removeAllListeners('dataAuth');
|
||||
if (await SocketRole.checkPasswordForRole(dataArg, this.smartsocketRef)) {
|
||||
if (dataArg.alias) {
|
||||
// TODO: authenticate password
|
||||
this.alias = dataArg.alias;
|
||||
this.authenticated = true;
|
||||
this.role = SocketRole.getSocketRoleByName(this.smartsocketRef, dataArg.role);
|
||||
this.socket.emit('authenticated');
|
||||
logger.log('ok', `socket with >>alias ${this.alias} >>role ${this.role} is authenticated!`);
|
||||
logger.log('ok', `socket with >>alias ${this.alias} is authenticated!`);
|
||||
done.resolve(this);
|
||||
} else {
|
||||
this.authenticated = false;
|
||||
await this.disconnect();
|
||||
done.reject('not authenticated');
|
||||
done.reject('a socket tried to connect, but could not authenticated.');
|
||||
}
|
||||
});
|
||||
const requestAuthPayload: interfaces.IRequestAuthPayload = {
|
||||
serverShortId: this.smartsocketRef.shortId,
|
||||
serverAlias: this.smartsocketRef.alias,
|
||||
};
|
||||
this.socket.emit('requestAuth', requestAuthPayload);
|
||||
return done.promise;
|
||||
@@ -168,7 +161,7 @@ export class SocketConnection {
|
||||
this.socket.on('function', (dataArg: ISocketRequestDataObject<any>) => {
|
||||
// check if requested function is available to the socket's scope
|
||||
// logger.log('info', 'function request received');
|
||||
const referencedFunction: SocketFunction<any> = this.role.allowedFunctions.findSync(
|
||||
const referencedFunction: SocketFunction<any> = this.smartsocketRef.socketFunctions.findSync(
|
||||
(socketFunctionArg) => {
|
||||
return socketFunctionArg.name === dataArg.funcCallData.funcName;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user