@@ -24,6 +24,9 @@ import (
2424const sessionCookie = "gowdk_flagship_session"
2525
2626func Login (_ context.Context , values form.Values ) (response.Response , error ) {
27+ if len (sessionSecret ()) == 0 {
28+ return response .RedirectTo ("/?login=failed" ), nil
29+ }
2730 email := strings .TrimSpace (values .First ("email" ))
2831 password := values .First ("password" )
2932 if ! constantEqual (email , env ("GOWDK_FLAGSHIP_EMAIL" , "demo@example.com" )) ||
@@ -127,6 +130,9 @@ var sessions = struct {
127130}{Values : map [string ]session {}}
128131
129132func currentSession (request * http.Request ) (session , bool ) {
133+ if len (sessionSecret ()) == 0 {
134+ return session {}, false
135+ }
130136 if request == nil {
131137 return session {}, false
132138 }
@@ -159,11 +165,15 @@ func sign(value string) string {
159165}
160166
161167func signature (value string ) string {
162- mac := hmac .New (sha256 .New , [] byte ( env ( "GOWDK_FLAGSHIP_SECRET" , "development-flagship-secret-change-me" ) ))
168+ mac := hmac .New (sha256 .New , sessionSecret ( ))
163169 _ , _ = mac .Write ([]byte (value ))
164170 return base64 .RawURLEncoding .EncodeToString (mac .Sum (nil ))
165171}
166172
173+ func sessionSecret () []byte {
174+ return []byte (strings .TrimSpace (os .Getenv ("GOWDK_FLAGSHIP_SECRET" )))
175+ }
176+
167177func sessionDuration () time.Duration {
168178 return 12 * time .Hour
169179}
0 commit comments