diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-06-07 19:20:18 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-07 19:20:18 +0800 |
commit | 027014d7de19a566cde306c868a31895903d00d5 (patch) | |
tree | d29fb9a3ac33f095b75fa90a1d17900cc8d2d48f /templates/user/auth/webauthn.tmpl | |
parent | 58536093b3112841bc69edb542189893b57e7a47 (diff) | |
download | gitea-027014d7de19a566cde306c868a31895903d00d5.tar.gz gitea-027014d7de19a566cde306c868a31895903d00d5.zip |
Fix webauthn regression and improve code (#25113)
Follow:
* #22697
There are some bugs in #22697:
* https://github.com/go-gitea/gitea/pull/22697#issuecomment-1577957966
* the webauthn failure message is never shown and causes console error
* The `document.getElementById('register-button')` and
`document.getElementById('login-button')` is wrong
* there is no such element in code
* it causes JS error when a browser doesn't provide webauthn
* the end user can't see the real error message
These bugs are fixed in this PR.
Other changes:
* Use simple HTML/CSS layouts, no need to use too many `gt-` patches
* Make the webauthn page have correct "page-content" layout
* The "data-webauthn-error-msg" elements are only used to provide locale
texts, so move them into a single "gt-hidden", then no need to repeat a
lot of "gt-hidden" in code
* The `{{.CsrfTokenHtml}}` is a no-op because there is no form
* Many `hideElem('#webauthn-error')` in code is no-op because the
`webauthn-error` already has "gt-hidden" by default
* Make the tests for "URLEncodedBase64" really test with concrete cases.
Screenshots:
* Error message when webauthn fails (before, there is no error message):
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/93cf9559-d93b-4f06-9d98-0f7032d9c65b)
</details>
* Error message when webauthn is unavailable
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/ffc0fcd9-b93b-4418-979c-c89bb627aaf2)
</details>
Diffstat (limited to 'templates/user/auth/webauthn.tmpl')
-rw-r--r-- | templates/user/auth/webauthn.tmpl | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/templates/user/auth/webauthn.tmpl b/templates/user/auth/webauthn.tmpl index f1c4f29fd9..ef04886405 100644 --- a/templates/user/auth/webauthn.tmpl +++ b/templates/user/auth/webauthn.tmpl @@ -1,21 +1,22 @@ {{template "base/head" .}} -<div class="user signin webauthn-prompt"> - <div class="ui middle centered very relaxed page grid"> +<div role="main" aria-label="{{.Title}}" class="page-content user signin webauthn-prompt"> + <div class="ui page grid"> <div class="column center aligned"> - <h3 class="ui top attached header"> - {{.locale.Tr "twofa"}} - </h3> - {{template "user/auth/webauthn_error" .}} - <div class="ui attached segment"> - {{svg "octicon-key" 56}} - <h3>{{.locale.Tr "webauthn_insert_key"}}</h3> - {{template "base/alert" .}} - <p>{{.locale.Tr "webauthn_sign_in"}}</p> - </div> - <div class="ui attached segment"><div class="ui active indeterminate inline loader"></div> {{.locale.Tr "webauthn_press_button"}} </div> - <div class="ui attached segment"> - <a href="{{AppSubUrl}}/user/two_factor">{{.locale.Tr "webauthn_use_twofa"}}</a> - </div> + {{template "user/auth/webauthn_error" .}} + <h3 class="ui top attached header">{{.locale.Tr "twofa"}}</h3> + <div class="ui attached segment"> + {{svg "octicon-key" 56}} + <h3>{{.locale.Tr "webauthn_insert_key"}}</h3> + {{template "base/alert" .}} + <p>{{.locale.Tr "webauthn_sign_in"}}</p> + </div> + <div class="ui attached segment"> + <div class="ui active indeterminate inline loader"></div> + {{.locale.Tr "webauthn_press_button"}} + </div> + <div class="ui attached segment"> + <a href="{{AppSubUrl}}/user/two_factor">{{.locale.Tr "webauthn_use_twofa"}}</a> + </div> </div> </div> </div> |