+9
-3
appview/db/db.go
+9
-3
appview/db/db.go
···
3
import (
4
"context"
5
"database/sql"
6
"fmt"
7
"log"
8
···
116
117
res := tx.QueryRow(`select secret from registrations where domain = ?`, domain)
118
119
-
var storedSecret string
120
-
err = res.Scan(&storedSecret)
121
if err != nil {
122
return err
123
}
124
125
-
err = bcrypt.CompareHashAndPassword([]byte(storedSecret), []byte(secret))
126
if err != nil {
127
return err
128
}
···
3
import (
4
"context"
5
"database/sql"
6
+
"encoding/hex"
7
"fmt"
8
"log"
9
···
117
118
res := tx.QueryRow(`select secret from registrations where domain = ?`, domain)
119
120
+
var hexSecret string
121
+
err = res.Scan(&hexSecret)
122
+
if err != nil {
123
+
return err
124
+
}
125
+
126
+
decoded, err := hex.DecodeString(hexSecret)
127
if err != nil {
128
return err
129
}
130
131
+
err = bcrypt.CompareHashAndPassword(decoded, []byte(secret))
132
if err != nil {
133
return err
134
}
+7
appview/state/state.go
+7
appview/state/state.go
···
108
domain := req.Domain
109
secret := req.Secret
110
111
log.Printf("Registered domain: %s with secret: %s", domain, secret)
112
}
113
}
···
116
r := chi.NewRouter()
117
118
r.Post("/login", s.Login)
119
r.Group(func(r chi.Router) {
120
r.Use(AuthMiddleware(s))
121
r.Post("/node/generate-key", s.GenerateRegistrationKey)
···
108
domain := req.Domain
109
secret := req.Secret
110
111
+
err := s.Db.Register(domain, secret)
112
+
if err != nil {
113
+
log.Println("failed to register domain", err)
114
+
return
115
+
}
116
+
117
log.Printf("Registered domain: %s with secret: %s", domain, secret)
118
}
119
}
···
122
r := chi.NewRouter()
123
124
r.Post("/login", s.Login)
125
+
r.Post("/node/register", s.Register)
126
r.Group(func(r chi.Router) {
127
r.Use(AuthMiddleware(s))
128
r.Post("/node/generate-key", s.GenerateRegistrationKey)