Catalyst-Plugin-OpenIDConnect
view release on metacpan or search on metacpan
example/root/login.html view on Meta::CPAN
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f5; }
.container { max-width: 400px; margin: 100px auto; padding: 40px; background: white; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
h1 { color: #333; margin-bottom: 30px; text-align: center; font-size: 24px; }
.form-group { margin-bottom: 15px; }
label { display: block; margin-bottom: 5px; color: #333; font-weight: 500; }
input[type="text"], input[type="password"] { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; }
input[type="text"]:focus, input[type="password"]:focus { outline: none; border-color: #007bff; box-shadow: 0 0 0 3px rgba(0,123,255,0.1); }
input[type="submit"] { width: 100%; padding: 10px; background: #007bff; color: white; border: none; border-radius: 4px; font-size: 14px; font-weight: 600; cursor: pointer; }
input[type="submit"]:hover { background: #0056b3; }
.error { color: #dc3545; margin-bottom: 15px; padding: 10px; background: #f8d7da; border-radius: 4px; }
.info { color: #0c5460; background: #d1ecf1; padding: 10px; margin-bottom: 15px; border-radius: 4px; font-size: 13px; }
</style>
</head>
<body>
<div class="container">
<h1>OpenID Connect Login</h1>
<div class="info">
( run in 0.495 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )