42 lines
1.4 KiB
Plaintext
42 lines
1.4 KiB
Plaintext
#load "../../lib/app.uce"
|
|
|
|
COMPONENT(Request& context)
|
|
{
|
|
DValue asset_props;
|
|
asset_props["css"]["0"] = "views/marketing.css";
|
|
print(component("../../components/theme/assets", asset_props, context));
|
|
context.call["app"]["page_title"] = "Auth";
|
|
|
|
DValue props;
|
|
props["title"] = "Sign In to Your Account";
|
|
props["subtitle"] = "Choose your preferred authentication method to continue";
|
|
props["google_client_id"] = "YOUR_GOOGLE_CLIENT_ID";
|
|
props["github_client_id"] = "YOUR_GITHUB_CLIENT_ID";
|
|
props["discord_client_id"] = "YOUR_DISCORD_CLIENT_ID";
|
|
props["twitch_client_id"] = "YOUR_TWITCH_CLIENT_ID";
|
|
props["callback_url"] = app_link("auth/callback", context);
|
|
|
|
<>
|
|
<h1>Authentication Demo</h1>
|
|
<div class="card">
|
|
<h2>OAuth Authentication</h2>
|
|
<p>This component provides secure OAuth authentication with popular identity providers.</p>
|
|
<? print(component("../../components/auth/oauth-client", props, context)); ?>
|
|
</div>
|
|
<div class="card">
|
|
<h2>Current Session Status</h2>
|
|
<? if(context.session[StarterUser::session_key()] != "") { ?>
|
|
<div class="success-card">
|
|
<h3>Logged In</h3>
|
|
<p>User ID: <?= context.session[StarterUser::session_key()] ?></p>
|
|
</div>
|
|
<? } else { ?>
|
|
<div class="component-card">
|
|
<h3>Not Logged In</h3>
|
|
<p>Use the OAuth component above to sign in with Google, GitHub, Discord, or Twitch.</p>
|
|
</div>
|
|
<? } ?>
|
|
</div>
|
|
</>
|
|
}
|