private async Task OnLoginReqArrived(Packet receivedPacket) { var loginReq = MessagePackSerializer.Deserialize <ServerConnectReq>(receivedPacket.Body); logger.Debug($"Function Entry. Session({receivedPacket.Owner.Socket.Handle}) LoginReq UserId({loginReq.UserId}), Token({loginReq.Token})"); var tokenValidationReq = new TokenValidationReq() { UserId = loginReq.UserId, Token = loginReq.Token }; var tokenValidationRes = await networkService.HttpPost <TokenValidationReq, TokenValidationRes>("http://localhost:20000/DB/TokenValidation", tokenValidationReq); logger.Debug($"DB Server Response to TokenValidation. Result({tokenValidationRes.Result}) Session({receivedPacket.Owner.Socket.Handle})"); if (tokenValidationRes.Result != (int)ErrorCode.None) { logger.Debug($"HttpPost TokenValidationReq failed. ErrorCode({tokenValidationRes.Result})"); } var loginRes = new ServerConnectRes() { Result = tokenValidationRes.Result }; var byteMessage = MessagePackSerializer.Serialize(loginRes); var sendPacket = new Packet(receivedPacket.Owner, (int)PacketId.ServerConnectRes, byteMessage); var postSession = receivedPacket.Owner; postSession.Send(sendPacket); }
public HttpResponseMessage ValidateToken(HttpRequestMessage pRequest, [FromBody] TokenValidationReq data) { IEnumerable <string> authKey = null; pRequest.Headers.TryGetValues("authenticationKey", out authKey); if (authKey != null) { var consumerVerified = consumerBL.AuthenticateConsumer(authKey.FirstOrDefault()); if (consumerVerified != null) { if (consumerVerified.IsValidKey) { if (!String.IsNullOrEmpty(data.token)) { bool verified = tokenBL.VerifyConsumerToken(data.token, consumerVerified.ConsumerID); if (verified) { response.HttpCode = 200; response.Message = "Success"; return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, response)); } else { response.HttpCode = 200; response.Message = "No records found or token has expired"; return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response)); } } else { response.HttpCode = 400; response.Message = "Validation token is required"; return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response)); } } else { response.HttpCode = 401; response.Message = "Authentication key is not valid"; return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response)); } } else { response.HttpCode = 401; response.Message = "Authentication key is required"; return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response)); } } else { response.HttpCode = 401; response.Message = "Authentication key is required"; return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response)); } }