コード例 #1
0
        public string Authorize(string channelName, string socketId)
        {
            double delay = LatencyInducer.InduceLatency(FakeAuthoriser.MinLatency, FakeAuthoriser.MaxLatency) / 1000.0;

            Trace.TraceInformation($"{this.GetType().Name} paused for {Math.Round(delay, 3)} second(s)");
            if (channelName.Contains(UnauthoriseToken))
            {
                throw new ChannelUnauthorizedException($"https://localhost/{nameof(FakeUnauthoriser)}", channelName, socketId);
            }
            else
            {
                throw new ChannelAuthorizationFailureException("Endpoint not found.", ErrorCodes.ChannelAuthorizationError, $"https://does.not.exist/{nameof(FakeUnauthoriser)}", channelName, socketId);
            }
        }
コード例 #2
0
        public async Task <string> AuthorizeAsync(string channelName, string socketId)
        {
            string authData = null;
            double delay    = (await LatencyInducer.InduceLatencyAsync(MinLatency, MaxLatency)) / 1000.0;

            Trace.TraceInformation($"{this.GetType().Name} paused for {Math.Round(delay, 3)} second(s)");
            await Task.Run(() =>
            {
                PusherServer.PusherOptions options = new PusherServer.PusherOptions
                {
                    EncryptionMasterKey = _encryptionKey,
                    Cluster             = Config.Cluster,
                };
                var provider = new PusherServer.Pusher(Config.AppId, Config.AppKey, Config.AppSecret, options);
                if (channelName.StartsWith("presence-"))
                {
                    var channelData = new PresenceChannelData
                    {
                        user_id   = socketId,
                        user_info = new FakeUserInfo {
                            name = _userName
                        }
                    };

                    authData = provider.Authenticate(channelName, socketId, channelData).ToJson();
                }
                else
                {
                    authData = provider.Authenticate(channelName, socketId).ToJson();
                }

                if (channelName.Contains(TamperToken))
                {
                    authData = authData.Replace("1", "2");
                }
            }).ConfigureAwait(false);

            return(authData);
        }