Пример #1
0
        public string DecodeToken(string token)
        {
            token = token.Split(' ')[1];

            if (token == null)
            {
                throw new ApiException(TOKEN_ERROR_EXCEPTION);
            }

            var tokenHandler = new JwtSecurityTokenHandler();
            var validations  = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey         = AuthOptionsHelper.GetSymmetricSecurityKey(),
                ValidateIssuer           = false,
                ValidateAudience         = false
            };

            // TODO: Exception
            tokenHandler.ValidateToken(token, validations, out var validatedToken);

            var securityToken = (JwtSecurityToken)validatedToken;

            var result = securityToken.Claims.FirstOrDefault(x => x.Type == JwtRegisteredClaimNames.NameId)?.Value;

            if (result == null)
            {
                throw new ApiException(INCORRECT_TOKEN);
            }

            return(result);
        }
Пример #2
0
        public static IServiceCollection AddIdentityServices(this IServiceCollection services)
        {
            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = AuthOptionsHelper.GetSymmetricSecurityKey(),
                    ValidateIssuer           = true,
                    ValidateAudience         = true
                };
            });

            return(services);
        }
Пример #3
0
        public string GenerateToken(BaseAuthDto dto)
        {
            var claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.NameId, dto.UserName)
            };

            var cred = new SigningCredentials(AuthOptionsHelper.GetSymmetricSecurityKey(),
                                              SecurityAlgorithms.HmacSha512);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Issuer             = AuthOptionsHelper.ISSUER,
                Audience           = AuthOptionsHelper.AUDIENCE,
                Subject            = new ClaimsIdentity(claims),
                SigningCredentials = cred
            };

            var tokenHandler = new JwtSecurityTokenHandler();

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }