Пример #1
0
        public async void DecodeJwtToken_UseWrongSecurityKey()
        {
            var supporter = CreateJwtAuthManager(s => { });

            var micakeUser = new UserWithJwtClaim()
            {
                Id   = Guid.NewGuid(),
                Name = "bob"
            };
            var token = await supporter.CreateToken(micakeUser);

            Assert.False(string.IsNullOrWhiteSpace(token.AccessToken));
            var result = await supporter.DecodeJwtToken(token.AccessToken);

            Assert.NotNull(result.Item1);
            Assert.NotNull(result.Item2);

            await Assert.ThrowsAsync <SecurityTokenSignatureKeyNotFoundException>(async() =>
            {
                var worngKeySupporter = CreateJwtAuthManager(s =>
                {
                    s.SecurityKey = Encoding.Default.GetBytes("wrong-key");
                    s.Audience    = "Wrong Audience";
                });
                var(claims, jwtToken) = await worngKeySupporter.DecodeJwtToken(token.AccessToken);
            });
        }
Пример #2
0
        public void CreateToken_useMiCakeUser_userHasClaimeAttribute()
        {
            var options   = new MiCakeJwtOptions(); //default value.
            var supporter = CreateJwtSupporter(options);

            var micakeUser = new UserWithJwtClaim()
            {
                Id   = Guid.NewGuid(),
                Name = "bob"
            };
            var token = supporter.CreateToken(micakeUser);

            Assert.False(string.IsNullOrWhiteSpace(token));

            var tokenModel = JwtHander.ReadJwtToken(token);
            var nameClaim  = tokenModel.Claims.FirstOrDefault(s => s.Type.Equals("name"));

            Assert.NotNull(nameClaim);
            Assert.Equal("bob", nameClaim.Value);

            var useridClaim = tokenModel.Claims.FirstOrDefault(s => s.Type.Equals("userid"));

            Assert.NotNull(useridClaim);
            Assert.Equal(micakeUser.Id.ToString(), useridClaim.Value);
        }
Пример #3
0
        public async void RefreshToken_ReUseMode_ShouldSame()
        {
            var supporter  = CreateJwtAuthManager(s => { });
            var micakeUser = new UserWithJwtClaim()
            {
                Id   = Guid.NewGuid(),
                Name = "bob"
            };
            var token = await supporter.CreateToken(micakeUser);

            var newToken = await supporter.Refresh(token.RefreshToken, token.AccessToken);

            Assert.Same(token.RefreshToken, newToken.RefreshToken);
        }
Пример #4
0
        public async void RefreshToken_WrongRefreshToken()
        {
            var supporter  = CreateJwtAuthManager(s => { });
            var micakeUser = new UserWithJwtClaim()
            {
                Id   = Guid.NewGuid(),
                Name = "bob"
            };
            var token = await supporter.CreateToken(micakeUser);

            await Assert.ThrowsAnyAsync <Exception>(async() =>
            {
                var newToken = await supporter.Refresh("Wrong Token", token.AccessToken);
            });
        }
Пример #5
0
        public async void RefreshToken_RightRefreshToken()
        {
            var supporter  = CreateJwtAuthManager(s => { });
            var micakeUser = new UserWithJwtClaim()
            {
                Id   = Guid.NewGuid(),
                Name = "bob"
            };
            var token = await supporter.CreateToken(micakeUser);

            var newToken = await supporter.Refresh(token.RefreshToken, token.AccessToken);

            Assert.False(string.IsNullOrWhiteSpace(newToken.AccessToken));
            Assert.False(string.IsNullOrWhiteSpace(newToken.RefreshToken));
            Assert.NotEqual(token.AccessToken, newToken.AccessToken);
        }
Пример #6
0
        public async void DecodeJwtToken_UseRightSecurityKey()
        {
            var supporter = CreateJwtAuthManager(s => { });

            var micakeUser = new UserWithJwtClaim()
            {
                Id   = Guid.NewGuid(),
                Name = "bob"
            };
            var token = await supporter.CreateToken(micakeUser);

            Assert.False(string.IsNullOrWhiteSpace(token.AccessToken));

            var(claims, jwtToken) = await supporter.DecodeJwtToken(token.AccessToken);

            Assert.NotNull(claims);
            Assert.NotNull(jwtToken);
        }
Пример #7
0
        public async void RefreshToken_RevokeRefreshToken_StillUse_WillThrowException()
        {
            var supporter = CreateJwtAuthManager(s =>
            {
                s.RefreshTokenMode = RefreshTokenUsageMode.RecreateBeforeOverdue;
            });
            var micakeUser = new UserWithJwtClaim()
            {
                Id   = Guid.NewGuid(),
                Name = "bob"
            };
            var token = await supporter.CreateToken(micakeUser);

            // remove current refresh token.
            await supporter.RevokeRefreshToken(token.RefreshToken);

            await Assert.ThrowsAnyAsync <Exception>(async() =>
            {
                await supporter.Refresh(token.RefreshToken, token.AccessToken);
            });
        }