login.ftl 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name='viewport' content='width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no' />
  6. <title>${realm.displayName}</title>
  7. <link rel="stylesheet" href="${url.resourcesPath}/css/login.css" />
  8. </head>
  9. <body>
  10. <div class="c-login">
  11. <div class="c-login__img"></div>
  12. <form
  13. class="c-login__main c-login-form"
  14. action="${url.loginAction}"
  15. method="post"
  16. onsubmit="login.disabled = true; return true;"
  17. >
  18. <div class="c-login-form__header">
  19. <div class="c-login-form__logo"></div>
  20. <div class="c-login-form__name">${realm.displayName}</div>
  21. </div>
  22. <div class="c-login-form__tip">
  23. <#if !messagesPerField.existsError('username','password') && message?has_content && !isAppInitiatedAction??>
  24. <span class="${message.type}">${kcSanitize(message.summary)?no_esc}</span>
  25. </#if>
  26. </div>
  27. <div class="c-login-form__wrapper">
  28. <label class="c-login-for__label">用户名</label>
  29. <div class="c-login-form__section">
  30. <input
  31. id="username"
  32. type="text"
  33. name="username"
  34. class="c-login-form__input"
  35. value="${(login.username!'')}"
  36. autocomplete="off"
  37. >
  38. <i class="c-login-form__icon user"></i>
  39. </div>
  40. <div class="c-login-form__error">
  41. <#if messagesPerField.existsError('username','password')>
  42. ${kcSanitize(messagesPerField.getFirstError('username','password'))?no_esc}
  43. </#if>
  44. </div>
  45. </div>
  46. <div class="c-login-form__wrapper">
  47. <label class="c-login-for__label">密码</label>
  48. <div class="c-login-form__section">
  49. <input
  50. id="password"
  51. type="password"
  52. name="password"
  53. class="c-login-form__input"
  54. autocomplete="off"
  55. aria-autocomplete="none"
  56. >
  57. <i class="c-login-form__icon lock"></i>
  58. </div>
  59. <div class="c-login-form__error"></div>
  60. </div>
  61. <input
  62. class="c-login-form__submit"
  63. type="submit"
  64. name="login"
  65. value="登 录"
  66. >
  67. </form>
  68. </div>
  69. </body>
  70. </html>