#load "../../lib/app.uce" COMPONENT(Request& context) { String title = first(context.props["title"].to_string(), "Sign in with OAuth"); String subtitle = first(context.props["subtitle"].to_string(), "Choose your preferred authentication method"); String callback_url = first(context.props["callback_url"].to_string(), app_link("auth/callback", context)); DValue services = context.props["services"]; if(services.get_type_name() != "array" || services["google"]["name"].to_string() == "") { services["google"]["name"] = "Google"; services["google"]["color"] = "#4285f4"; services["google"]["icon"] = "fab fa-google"; services["google"]["scope"] = "openid email profile"; services["google"]["auth_url"] = "https://accounts.google.com/o/oauth2/v2/auth"; services["github"]["name"] = "GitHub"; services["github"]["color"] = "#333333"; services["github"]["icon"] = "fab fa-github"; services["github"]["scope"] = "user:email"; services["github"]["auth_url"] = "https://github.com/login/oauth/authorize"; services["discord"]["name"] = "Discord"; services["discord"]["color"] = "#5865f2"; services["discord"]["icon"] = "fab fa-discord"; services["discord"]["scope"] = "identify email"; services["discord"]["auth_url"] = "https://discord.com/api/oauth2/authorize"; services["twitch"]["name"] = "Twitch"; services["twitch"]["color"] = "#9146ff"; services["twitch"]["icon"] = "fab fa-twitch"; services["twitch"]["scope"] = "user:read:email"; services["twitch"]["auth_url"] = "https://id.twitch.tv/oauth2/authorize"; } <>
> }