private static void ConfigureAuthenticationJwt(
            IServiceCollection services,
            ICoreBaseAuthTypeJwtSettings settings
            )
        {
            services.Configure <JwtBearerOptions>(options =>
            {
                options.ClaimsIssuer = settings.Issuer;

                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer = true,
                    ValidIssuer    = settings.Issuer,

                    ValidateAudience = true,
                    ValidAudience    = settings.Audience,

                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = settings.SigningKey,

                    RequireExpirationTime = false,
                    ValidateLifetime      = true,
                    ClockSkew             = TimeSpan.Zero
                };

                options.SaveToken = true;

                options.IncludeErrorDetails = true;
            });
        }
Example #2
0
        /// <summary>
        /// Конструктор.
        /// </summary>
        /// <param name="settings">Настройки.</param>
        public CoreBaseAuthTypeJwtService(ICoreBaseAuthTypeJwtSettings settings)
        {
            Settings = settings;

            if (Settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            if (Settings.SigningKey == null)
            {
                throw new ArgumentNullException(nameof(ICoreBaseAuthTypeJwtSettings.SigningKey));
            }

            SigningCredentials = new SigningCredentials(Settings.SigningKey, SecurityAlgorithms.HmacSha256);

            LookupOfUserIdByRefreshTokenValue = new Dictionary <string, string>();
        }