Add hint to providers
All checks were successful
/ test (push) Successful in 5s

This commit is contained in:
phil 2025-01-10 23:40:24 +01:00
parent 66d9d2dc09
commit b1553ec7bf
3 changed files with 60 additions and 40 deletions

View file

@ -19,6 +19,7 @@ class OIDCProvider(BaseModel):
url: str url: str
client_id: str client_id: str
client_secret: str = "" client_secret: str = ""
hint: str = "Use your own credentials"
@computed_field @computed_field
@property @property

View file

@ -52,40 +52,7 @@
.user-info a.logout:hover { .user-info a.logout:hover {
background-color: orange; background-color: orange;
} }
.login-box { .debug-auth {
text-align: center;
}
.login-box p {
margin: 0;
}
.login-toolbox {
max-width: 18em;
margin: 0.5em auto;
display: flex;
flex-direction: column;
justify-content: center;
padding: 0.8em;
background-color: floralwhite;
gap: 0.5em;
}
.login-toolbox a {
background-color: lightblue;
font-weight: bold;
border-radius: 8px;
padding: 6px;
text-decoration: none;
text-align: center;
color: black;
flex: 1 1 auto;
}
.login-toolbox .error {
color: darkred;
padding: 3px 6px;
text-align: center;
font-weight: bold;
flex: 1 1 auto;
}
.debug-auth {
font-size: 90%; font-size: 90%;
background-color: #d8bebc75; background-color: #d8bebc75;
padding: 6px; padding: 6px;

View file

@ -1,20 +1,72 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block content %} {% block content %}
<style>
.login-box {
text-align: center;
background-color: floralwhite;
margin: 0 auto;
width: fit-content;
border: 1px solid grey;
}
.login-box p {
margin: 0;
}
.login-box .description {
font-style: italic;
}
.providers {
margin: 0.5em auto;
justify-content: center;
padding: 0.8em;
}
.providers .provider {
height: 2em;
}
.providers .provider a {
background-color: lightblue;
border-radius: 8px;
padding: 6px;
text-align: center;
color: black;
text-decoration: none;
font-weight: bold;
}
.providers .provider .hint {
font-size: 80%;
max-width: 12em;
}
.providers .provider .provider-link {
text-align: center;
}
.providers .error {
color: darkred;
padding: 3px 6px;
text-align: center;
font-weight: bold;
flex: 1 1 auto;
}
</style>
<p class="center"> <p class="center">
Test the authentication and authorization of FastAPI web based applications Test the authentication and authorization of FastAPI web based applications
with OpenID Connect and OAuth2 with different providers. with OpenID Connect and OAuth2 with different providers.
</p> </p>
{% if not user %} {% if not user %}
<div class="login-box"> <div class="login-box">
<div class="login-toolbox"> <p class="description">Log in with one of these authentication providers:</p>
<p>Log in with one of these authentication providers:</p> <table class="providers">
{% for provider in settings.oidc.providers %} {% for provider in settings.oidc.providers %}
<a href="login/{{ provider.id }}">{{ provider.name }}</a> <tr class="provider">
<td class="provider-link">
<a href="login/{{ provider.id }}">{{ provider.name }}</a>
</td>
<td class="hint">{{ provider.hint }}</div>
</td>
</tr>
{% else %} {% else %}
<span class="error">There is no authentication provider defined. <div class="error">There is no authentication provider defined.
Hint: check the settings.yaml file.</span> Hint: check the settings.yaml file.</div>
{% endfor %} {% endfor %}
</div> </table>
</div> </div>
{% endif %} {% endif %}
{% if user %} {% if user %}