feat: initial commit

This commit is contained in:
2023-11-15 20:38:25 +01:00
commit e199fe3d26
67 changed files with 4152 additions and 0 deletions

View File

@ -0,0 +1,35 @@
{{define "title"}}Autorisation{{end}}
{{define "body"}}
<section class="hero is-fullheight">
<div class="hero-body">
<div class="container">
<div class="columns">
<div class="column is-4 is-offset-4">
{{template "flash" .}}
<p class="has-text-black title has-text-centered">
Demande d'autorisation
</p>
<p class="has-text-black subtitle has-text-centered">
Autorisez vous l'application à utiliser ces informations vous concernant ?
</p>
<div class="box">
<form action="{{ .BaseURL }}/consent" method="POST">
{{range .RequestedScope}}
<div class="">
<label class="checkbox">
<input type="checkbox" name="scope_{{ . }}">
{{ . }}
</label>
</div>
{{end}}
{{ .csrfField }}
<input name="challenge" type="hidden" value="{{ .ConsentChallenge }}" />
<button type="submit" class="button is-link is-medium is-block is-fullwidth">Autoriser</button>
</form>
</div>
</div>
</div>
</div>
</section>
{{end}}
{{template "base" .}}

View File

@ -0,0 +1,20 @@
{{define "title"}}Erreur{{end}}
{{define "body"}}
<section class="hero is-fullheight">
<div class="hero-body">
<div class="container">
<div class="columns">
<div class="column is-4 is-offset-4">
<div class="message is-danger">
<div class="message-body">
<p class="title is-size-4 has-text-danger">{{ .ErrorTitle }}</p>
<p>{{ .ErrorDescription }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
{{end}}
{{template "base" .}}

View File

@ -0,0 +1,22 @@
{{define "title"}}Connexion{{end}}
{{define "body"}}
<section class="hero is-fullheight">
<div class="hero-body">
<div class="container has-text-centered">
<div class="columns">
<div class="column is-4 is-offset-4">
<p class="has-text-black title">
Hydra Web<span class="has-text-grey">Authn</span>
</p>
<p class="is-size-7">
Version: {{ .BuildInfo.ProjectVersion }} |
Réf.: {{ .BuildInfo.GitRef }} |
Date de construction: {{ .BuildInfo.BuildDate }}
</p>
</div>
</div>
</div>
</div>
</section>
{{end}}
{{template "base" .}}

View File

@ -0,0 +1,53 @@
{{define "title"}}Connexion{{end}}
{{define "body"}}
<section class="hero is-fullheight">
<div class="hero-body">
<div class="container">
<div class="columns">
<div class="column is-6 is-offset-3">
{{template "flash" .}}
<p class="has-text-black title has-text-centered">
Authentification sur <br /><a href="{{ .ClientURI }}" class="has-text-info">{{ .ClientName }}</a>
</p>
<div>
<noscript>
<div class="message is-danger">
<div class="message-body">
L'activation de JavaScript est nécessaire afin de pouvoir vous authentifier !
</div>
</div>
</noscript>
<div class="box">
<form id="login" method="POST">
<div class="field">
<label for="username" class="label">Nom d'utilisateur</label>
<div class="control">
<input id="username" class="input" name="username" type="text" placeholder="jdoe" value="{{ .Username }}" required>
</div>
</div>
<div>
<label for="rememberme" class="checkbox">
<input type="checkbox" id="rememberme" name="rememberme" {{if .RememberMe }}checked="true"{{end}} >
Se souvenir de moi
</label>
</div>
{{if .AssertionRequest}}
<input type="hidden" id="assertion" name="assertion" />
{{end}}
{{ .csrfField }}
<input name="challenge" type="hidden" value="{{ .LoginChallenge }}" />
<input type="submit" value="Envoyer" class="button is-fullwidth is-primary mt-3" />
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
{{if .AssertionRequest}}
<script type="text/javascript" src="{{ .BaseURL }}/js/hydra-webauthn.js"></script>
<script type="text/javascript" src="{{ .BaseURL }}/js/login.js" data-assertion-request="{{ base64 ( marshal .AssertionRequest ) }}"></script>
{{end}}
{{end}}
{{template "base" .}}

View File

@ -0,0 +1,28 @@
{{define "title"}}S'enregistrer{{end}}
{{define "body"}}
<section class="hero is-fullheight">
<div class="hero-body">
<div class="container">
<div class="columns">
<div class="column is-4 is-offset-4">
{{template "flash" .}}
<p class="has-text-black title has-text-centered mt-2">
Finaliser votre compte
</p>
<p>Cliquer sur le bouton ci-dessous pour générer une paire de clés cryptographiques qui sera associée à votre compte.</p>
<div class="button is-link is-medium is-block is-fullwidth mt-5" onclick="generateCredentials()">
Générer
</div>
<form id="register" action="{{ .BaseURL }}/register/{{ .Token }}" method="POST">
{{ .csrfField }}
<input type="hidden" id="credentials" name="credentials" />
</form>
</div>
</div>
</div>
</div>
</section>
<script type="text/javascript" src="{{ .BaseURL }}/js/hydra-webauthn.js"></script>
<script type="text/javascript" src="{{ .BaseURL }}/js/register.js" data-web-authn-options="{{ base64 ( marshal .WebAuthnOptions ) }}"></script>
{{end}}
{{template "base" .}}