github.com/cozy/cozy-stack@v0.0.0-20240603063001-31110fa4cae1/assets/templates/twofactor.html (about) 1 <!DOCTYPE html> 2 <html lang="{{.Locale}}"> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="refresh" content="3600"> 6 <meta name="viewport" content="width=device-width, initial-scale=1"> 7 <meta name="theme-color" content="#fff"> 8 <title>{{.TemplateTitle}}</title> 9 <link rel="stylesheet" href="{{asset .Domain "/fonts/fonts.css" .ContextName}}"> 10 <link rel="stylesheet" href="{{asset .Domain "/css/cozy-bs.min.css" .ContextName}}"> 11 <link rel="stylesheet" href="{{asset .Domain "/styles/theme.css" .ContextName}}"> 12 <link rel="stylesheet" href="{{asset .Domain "/styles/cirrus.css" .ContextName}}"> 13 {{.Favicon}} 14 <link rel="preload" href="/assets/icons/check.svg" as="image"> 15 </head> 16 <body class="cirrus theme-inverted"> 17 <form id="two-factor-form" method="POST" action="/auth/twofactor" class="d-contents"> 18 <input id="state" type="hidden" name="state" value="{{.State}}" /> 19 <input id="client_id" type="hidden" name="client_id" value="{{.ClientID}}" /> 20 <input id="redirect" type="hidden" name="redirect" value="{{.Redirect}}" /> 21 <input id="confirm" type="hidden" name="redirect" value="{{.Confirm}}" /> 22 <input id="two-factor-token" type="hidden" name="two-factor-token" value="{{.TwoFactorToken}}" /> 23 <input id="long-run-session" name="long-run-session" type="hidden" value="{{.LongRunSession}}" /> 24 <main class="wrapper"> 25 26 <header class="wrapper-top d-flex flex-row align-items-center"> 27 <a href="/auth/login" class="btn btn-icon" aria-label="{{t "Back icon label"}}"> 28 <span class="icon icon-back"></span> 29 </a> 30 <div class="vertical-separator d-sm-none" role="separator"></div> 31 <a href="https://cozy.io/" class="btn p-2 d-sm-none"> 32 <img src="{{asset .Domain "/images/logo-dark.svg"}}" alt="Cozy Cloud" class="logo" /> 33 </a> 34 </header> 35 36 <div class="d-flex flex-column align-items-center"> 37 <h1 class="h4 h2-md mb-3 text-center">{{t "Login Two factor title"}}</h1> 38 <p class="mb-4 mb-md-5 text-center">{{t "Login Two factor help"}}</p> 39 <div id="two-factor-field" class="form-floating has-validation w-100 mb-3"> 40 <input type="text" class="form-control form-control-md-lg" id="two-factor-passcode" name="two-factor-passcode" autofocus autocomplete="one-time-code" pattern="[0-9]*" inputmode="numeric" maxlength="6" /> 41 <label for="two-factor-passcode">{{t "Login Two factor field"}}</label> 42 {{if .CredentialsError}} 43 <div class="invalid-tooltip mb-1"> 44 <div class="tooltip-arrow"></div> 45 <span class="icon icon-alert bg-danger"></span> 46 {{.CredentialsError}} 47 </div> 48 {{end}} 49 </div> 50 {{if .TrustedDeviceCheckBox}} 51 <div class="form-check align-self-start"> 52 <input class="form-check-input" type="checkbox" id="two-factor-trust-device" name="two-factor-trust-device" /> 53 <label class="form-check-label" for="two-factor-trust-device"> 54 {{t "Login Two factor device trust field"}} 55 </label> 56 </div> 57 {{else}} 58 <input id="two-factor-trust-device" class="two-factor-trust-device-checkbox" name="two-factor-trust-device" type="hidden"/> 59 {{end}} 60 </div> 61 62 <footer class="w-100"> 63 <button id="two-factor-submit" class="btn btn-primary btn-md-lg w-100 my-3 mt-md-5" type="submit"> 64 {{t "Login Confirm"}} 65 </button> 66 </footer> 67 68 </main> 69 </form> 70 <script src="{{asset .Domain "/scripts/cirrus.js"}}"></script> 71 <script src="{{asset .Domain "/scripts/twofactor.js"}}"></script> 72 </body> 73 </html>