function($prop) { $services = $prop['services'] ?? [ 'google' => [ 'name' => 'Google', 'color' => '#4285f4', 'icon' => 'fab fa-google', 'scope' => 'openid email profile', 'auth_url' => 'https://accounts.google.com/oauth/authorize', 'token_url' => 'https://oauth2.googleapis.com/token', 'user_info_url' => 'https://www.googleapis.com/oauth2/v2/userinfo' ], 'github' => [ 'name' => 'GitHub', 'color' => '#333333', 'icon' => 'fab fa-github', 'scope' => 'user:email', 'auth_url' => 'https://github.com/login/oauth/authorize', 'token_url' => 'https://github.com/login/oauth/access_token', 'user_info_url' => 'https://api.github.com/user' ], 'discord' => [ 'name' => 'Discord', 'color' => '#5865f2', 'icon' => 'fab fa-discord', 'scope' => 'identify email', 'auth_url' => 'https://discord.com/api/oauth2/authorize', 'token_url' => 'https://discord.com/api/oauth2/token', 'user_info_url' => 'https://discord.com/api/users/@me' ], 'twitch' => [ 'name' => 'Twitch', 'color' => '#9146ff', 'icon' => 'fab fa-twitch', 'scope' => 'user:read:email', 'auth_url' => 'https://id.twitch.tv/oauth2/authorize', 'token_url' => 'https://id.twitch.tv/oauth2/token', 'user_info_url' => 'https://api.twitch.tv/helix/users' ] ]; $title = $prop['title'] ?? 'Sign in with OAuth'; $subtitle = $prop['subtitle'] ?? 'Choose your preferred authentication method'; $callback_url = $prop['callback_url'] ?? URL::Link('auth/callback'); ?>

$service): ?>
'OAuth authentication component with support for Google and other providers. Handles the complete OAuth flow including state verification and callback processing.' ];