// 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(); }
public FirebaseAuthProvider(FirebaseAuthConfiguration configuration) { configuration.ShouldNotBeNull(); var app = FirebaseApp.Create(new AppOptions { Credential = GoogleCredential.FromJson(configuration.ServiceAccountJson) }); _auth = FirebaseAuth.GetAuth(app); }
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); }