Beispiel #1
0
        IServiceCollection ConfigureOptions(IServiceCollection services)
        {
            services.AddOptions();

            var auth = Configuration.GetSection(AuthSettings.ConfigKey).Get <AuthSettings>();

            byte[] bytes = Encoding.ASCII.GetBytes(auth.Key);

            services.AddScoped <ITokenGenerator, TokenGenerator>(s => new TokenGenerator(bytes));

            services.Configure <EmailSettings>(Configuration.GetSection(EmailSettings.ConfigKey));
            services.Configure <SMSOptions>(Configuration.GetSection(SMSOptions.ConfigKey));
            services.Configure <AuthSettings>(Configuration.GetSection(AuthSettings.ConfigKey));
            services.Configure <PaystackOptions>(Configuration.GetSection(PaystackOptions.ConfigKey));

            services.Configure <JwtIssuerOptions>(opt =>
            {
                SymmetricSecurityKey key = new SymmetricSecurityKey(bytes);
                JwtIssuerOptions         = Configuration.GetSection(JwtIssuerOptions.ConfigKey)
                                           .Get <JwtIssuerOptions>();
                JwtIssuerOptions.SigningCredentials = new SigningCredentials(key,
                                                                             SecurityAlgorithms.HmacSha512Signature);

                var options            = JwtIssuerOptions;
                opt.Audience           = options.Audience;
                opt.Issuer             = options.Issuer;
                opt.SigningCredentials = JwtIssuerOptions.SigningCredentials;
                opt.Subject            = opt.Subject;
            });

            var mongoDbOptions = Configuration.GetSection(MongoDBOptions.CONFIG_KEY).Get <MongoDBOptions>();

            ConnectionString = Configuration.GetConnectionString("MongoDBAtlasConnection");
            ConnectionString = ConnectionString.BindTo(mongoDbOptions);
            DatabaseName     = mongoDbOptions.DatabaseName;
            services.Configure <MongoDBOptions>((opt) => opt = mongoDbOptions);

            return(services);
        }