Ejemplo n.º 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var mongoConfiguration = new MongoDbConfiguration();

            Configuration.GetSection(MongoDbConfiguration.SectionKey).Bind(mongoConfiguration);

            var firebaseConfiguration = new FirebaseAuthConfiguration();

            Configuration.GetSection(FirebaseAuthConfiguration.SectionKey).Bind(firebaseConfiguration);

            var dialogFlowConfiguration = new DialogFlowConfiguration();

            Configuration.GetSection(DialogFlowConfiguration.SectionKey).Bind(dialogFlowConfiguration);

            var influxConfiguration = new InfluxDbConfiguration();

            Configuration.GetSection(InfluxDbConfiguration.SectionKey).Bind(influxConfiguration);

            services
            .AddCors()
            .AddFirebaseAuthModule(firebaseConfiguration)
            .AddMongoDbModule(mongoConfiguration)
            .AddDialogFlowModule(dialogFlowConfiguration)
            .AddInfluxStatisticsModule(influxConfiguration)
            .AddChatBotBusinessModule()
            .AddControllers();
        }
Ejemplo n.º 2
0
        public FirebaseAuthProvider(FirebaseAuthConfiguration configuration)
        {
            configuration.ShouldNotBeNull();

            var app = FirebaseApp.Create(new AppOptions
            {
                Credential = GoogleCredential.FromJson(configuration.ServiceAccountJson)
            });

            _auth = FirebaseAuth.GetAuth(app);
        }
Ejemplo n.º 3
0
 public static IServiceCollection AddFirebaseAuthModule(this IServiceCollection services,
                                                        FirebaseAuthConfiguration configuration)
 {
     services
     .AddSingleton <IAuthProvider, FirebaseAuthProvider>()
     .AddSingleton(configuration)
     .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
     .AddJwtBearer(options =>
     {
         options.Authority = "https://securetoken.google.com/" + configuration.ProjectId;
         options.TokenValidationParameters = new TokenValidationParameters
         {
             ValidateIssuer   = true,
             ValidIssuer      = "https://securetoken.google.com/" + configuration.ProjectId,
             ValidateAudience = true,
             ValidAudience    = configuration.ProjectId,
             ValidateLifetime = true
         };
     });
     return(services);
 }