61 lines
2.2 KiB
C#
61 lines
2.2 KiB
C#
using MoonCore.Helpers;
|
|
|
|
namespace Moonlight.ApiServer.Configuration;
|
|
|
|
public class AppConfiguration
|
|
{
|
|
public string PublicUrl { get; set; } = "http://localhost:5165";
|
|
|
|
public DatabaseConfig Database { get; set; } = new();
|
|
public AuthenticationConfig Authentication { get; set; } = new();
|
|
public DevelopmentConfig Development { get; set; } = new();
|
|
|
|
public class DatabaseConfig
|
|
{
|
|
public string Host { get; set; } = "your-database-host.name";
|
|
public int Port { get; set; } = 3306;
|
|
|
|
public string Username { get; set; } = "db_user";
|
|
public string Password { get; set; } = "db_password";
|
|
|
|
public string Database { get; set; } = "db_name";
|
|
}
|
|
|
|
public class AuthenticationConfig
|
|
{
|
|
public string AccessSecret { get; set; } = Formatter.GenerateString(32);
|
|
public string RefreshSecret { get; set; } = Formatter.GenerateString(32);
|
|
public int AccessDuration { get; set; } = 60;
|
|
public int RefreshDuration { get; set; } = 3600;
|
|
|
|
public OAuth2Data OAuth2 { get; set; } = new();
|
|
public bool UseLocalOAuth2 { get; set; } = true;
|
|
|
|
public LocalOAuth2Data LocalOAuth2 { get; set; } = new();
|
|
|
|
public class LocalOAuth2Data
|
|
{
|
|
public string AccessSecret { get; set; } = Formatter.GenerateString(32);
|
|
public string RefreshSecret { get; set; } = Formatter.GenerateString(32);
|
|
public string CodeSecret { get; set; } = Formatter.GenerateString(32);
|
|
|
|
public int AccessTokenDuration { get; set; } = 60;
|
|
public int RefreshTokenDuration { get; set; } = 3600;
|
|
}
|
|
|
|
public class OAuth2Data
|
|
{
|
|
public string ClientId { get; set; } = Formatter.GenerateString(8);
|
|
public string ClientSecret { get; set; } = Formatter.GenerateString(32);
|
|
public string? AuthorizationUri { get; set; }
|
|
public string? AuthorizationRedirect { get; set; }
|
|
public string? AccessEndpoint { get; set; }
|
|
public string? RefreshEndpoint { get; set; }
|
|
}
|
|
}
|
|
|
|
public class DevelopmentConfig
|
|
{
|
|
public bool EnableApiDocs { get; set; } = false;
|
|
}
|
|
} |