aboutsummaryrefslogtreecommitdiff
path: root/examples/auth.go
diff options
context:
space:
mode:
authoradnano <[email protected]>2020-11-01 14:47:26 -0500
committeradnano <[email protected]>2020-11-01 14:47:26 -0500
commit8e442146c3ea192635bfd91e1765db50268c0d7f (patch)
tree9c1d1ca84e8f51da30e3602703d4f26a788ee59b /examples/auth.go
parentRefactor Certificate and Input functions (diff)
downloadarchived-go-gemini-8e442146c3ea192635bfd91e1765db50268c0d7f.tar.xz
archived-go-gemini-8e442146c3ea192635bfd91e1765db50268c0d7f.zip
Update examples/auth.go
Diffstat (limited to 'examples/auth.go')
-rw-r--r--examples/auth.go37
1 files changed, 22 insertions, 15 deletions
diff --git a/examples/auth.go b/examples/auth.go
index e6be9ec..cc54b5b 100644
--- a/examples/auth.go
+++ b/examples/auth.go
@@ -51,19 +51,21 @@ func main() {
}
}
-func getSession(crt *x509.Certificate) (*session, bool) {
- fingerprint := gemini.Fingerprint(crt)
+func getSession(cert *x509.Certificate) (*session, bool) {
+ fingerprint := gemini.Fingerprint(cert)
session, ok := sessions[fingerprint]
return session, ok
}
func login(w *gemini.ResponseWriter, r *gemini.Request) {
- cert, ok := gemini.Certificate(w, r)
- if !ok {
+ cert := gemini.Certificate(r)
+ if cert == nil {
+ w.WriteStatus(gemini.StatusCertificateRequired)
return
}
- username, ok := gemini.Input(w, r, "Username")
+ username, ok := gemini.Input(r)
if !ok {
+ w.WriteHeader(gemini.StatusInput, "Username")
return
}
fingerprint := gemini.Fingerprint(cert)
@@ -74,8 +76,9 @@ func login(w *gemini.ResponseWriter, r *gemini.Request) {
}
func loginPassword(w *gemini.ResponseWriter, r *gemini.Request) {
- cert, ok := gemini.Certificate(w, r)
- if !ok {
+ cert := gemini.Certificate(r)
+ if cert == nil {
+ w.WriteStatus(gemini.StatusCertificateRequired)
return
}
session, ok := getSession(cert)
@@ -84,8 +87,9 @@ func loginPassword(w *gemini.ResponseWriter, r *gemini.Request) {
return
}
- password, ok := gemini.SensitiveInput(w, r, "Password")
+ password, ok := gemini.Input(r)
if !ok {
+ w.WriteHeader(gemini.StatusSensitiveInput, "Password")
return
}
expected := logins[session.username].password
@@ -93,13 +97,14 @@ func loginPassword(w *gemini.ResponseWriter, r *gemini.Request) {
session.authorized = true
w.WriteHeader(gemini.StatusRedirect, "/profile")
} else {
- gemini.SensitiveInput(w, r, "Wrong password. Try again")
+ w.WriteHeader(gemini.StatusSensitiveInput, "Wrong password. Try again")
}
}
func logout(w *gemini.ResponseWriter, r *gemini.Request) {
- cert, ok := gemini.Certificate(w, r)
- if !ok {
+ cert := gemini.Certificate(r)
+ if cert == nil {
+ w.WriteStatus(gemini.StatusCertificateRequired)
return
}
fingerprint := gemini.Fingerprint(cert)
@@ -108,8 +113,9 @@ func logout(w *gemini.ResponseWriter, r *gemini.Request) {
}
func profile(w *gemini.ResponseWriter, r *gemini.Request) {
- cert, ok := gemini.Certificate(w, r)
- if !ok {
+ cert := gemini.Certificate(r)
+ if cert == nil {
+ w.WriteStatus(gemini.StatusCertificateRequired)
return
}
session, ok := getSession(cert)
@@ -124,8 +130,9 @@ func profile(w *gemini.ResponseWriter, r *gemini.Request) {
}
func admin(w *gemini.ResponseWriter, r *gemini.Request) {
- cert, ok := gemini.Certificate(w, r)
- if !ok {
+ cert := gemini.Certificate(r)
+ if cert == nil {
+ w.WriteStatus(gemini.StatusCertificateRequired)
return
}
session, ok := getSession(cert)