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);
        }
Пример #2
0
        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));
            }
        }