コード例 #1
0
        public void T3_VerifyBadJWT()
        {
            byte[] key     = { 0xDE, 0xAD, 0xBE, 0xEF };
            var    payload = new JWTPayload {
                Subject = "24"
            };

            var jwtFactory = new JWTFactory(key);
            var jwt        = jwtFactory.Generate(payload);

            jwtFactory.Verify(jwt + "deadbeef").Should().BeFalse();
        }
コード例 #2
0
        public void T1_GenerateJWT()
        {
            byte[] key     = { 0xDE, 0xAD, 0xBE, 0xEF };
            var    payload = new JWTPayload {
                Subject = "12"
            };

            var jwtFactory = new JWTFactory(key);
            var jwt        = jwtFactory.Generate(payload);

            jwt.Should().Be("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMiJ9.YyJFI-9mZc1w-YX3bjPSRr-kJ7nlzPlMNI4cgwm735A");
        }
コード例 #3
0
        public void T2_VerifyGoodJWT()
        {
            byte[] key     = { 0xDE, 0xAD, 0xBE, 0xEF };
            var    payload = new JWTPayload {
                Subject = "24"
            };

            var jwtFactory = new JWTFactory(key);
            var jwt        = jwtFactory.Generate(payload);

            jwtFactory.Verify(jwt).Should().BeTrue();
        }
コード例 #4
0
        public void T4_ParseJWT()
        {
            byte[] key     = { 0xDE, 0xAD, 0xBE, 0xEF };
            var    payload = new JWTPayload {
                Subject = "42"
            };

            var jwtFactory = new JWTFactory(key);
            var jwt        = jwtFactory.Generate(payload);

            var parsed = JWTFactory.Parse(jwt);

            parsed.Subject.Should().Be("42");
            parsed.JwtID.Should().BeNull();
        }
コード例 #5
0
        /// <summary>
        /// Login the current client with a name.
        /// </summary>
        /// <param name="name">The name to login with</param>
        /// <returns>A LoginResponse with all data</returns>
        public async Task <LoginResponse> LoginWithName(string name)
        {
            var userInfo = getUserInfo(Context);

            if (userInfo.Value.JwtID != null)
            {
                return(new LoginResponse {
                    Success = false
                });
            }

            string userId = Guid.NewGuid().ToString();
            string jwtId  = Guid.NewGuid().ToString();

            var payload = new JWTPayload {
                JwtID = jwtId, Name = name, Subject = userId
            };
            string jwt = _jwtFactory.Generate(payload);

            return(await connectUser(Context, payload, jwt));
        }