add cookie secret as env, fix components

This commit is contained in:
Zeni Kim 2024-10-15 22:00:46 -05:00
parent 45e7079005
commit cc74165659
4 changed files with 46 additions and 13 deletions

View file

@ -5,10 +5,9 @@
package core package core
import ( import (
"bytes"
"crypto/aes" "crypto/aes"
"crypto/cipher" "crypto/cipher"
"bytes"
"crypto/rand" "crypto/rand"
"encoding/base64" "encoding/base64"
"encoding/gob" "encoding/gob"
@ -17,6 +16,8 @@ import (
"fmt" "fmt"
"io" "io"
"net/http" "net/http"
"os"
"strconv"
"strings" "strings"
) )
@ -39,10 +40,25 @@ func GetCookie(r *http.Request) (UserCookie, error) {
// Create a new instance of a User type. // Create a new instance of a User type.
var user UserCookie var user UserCookie
secretcookie, err = hex.DecodeString("13d6b4dff8f84a10851021ec8608f814570d562c92fe6b5ec4c9f595bcb3234b") // check if template engine is enable
TemplateEnableStr := os.Getenv("TEMPLATE_ENABLE")
if TemplateEnableStr == "" {
TemplateEnableStr = "false"
}
TemplateEnable, _ := strconv.ParseBool(TemplateEnableStr)
// if enabled,
if TemplateEnable {
cookie_secret := os.Getenv("COOKIE_SECRET")
if cookie_secret == "" {
panic("cookie secret key is not set")
}
secretcookie, err = hex.DecodeString(cookie_secret)
if err != nil { if err != nil {
return user, err return user, err
} }
} else {
panic("Templates are disabled")
}
gobEncodedValue, err := CookieReadEncrypted(r, "goffee", secretcookie) gobEncodedValue, err := CookieReadEncrypted(r, "goffee", secretcookie)
if err != nil { if err != nil {
@ -67,7 +83,26 @@ func SetCookie(w http.ResponseWriter, email string, token string) error {
// cookie. // cookie.
var err error var err error
secretcookie, err = hex.DecodeString("13d6b4dff8f84a10851021ec8608f814570d562c92fe6b5ec4c9f595bcb3234b") // check if template engine is enable
TemplateEnableStr := os.Getenv("TEMPLATE_ENABLE")
if TemplateEnableStr == "" {
TemplateEnableStr = "false"
}
TemplateEnable, _ := strconv.ParseBool(TemplateEnableStr)
// if enabled,
if TemplateEnable {
cookie_secret := os.Getenv("COOKIE_SECRET")
if cookie_secret == "" {
panic("cookie secret key is not set")
}
secretcookie, err = hex.DecodeString(cookie_secret)
if err != nil {
return err
}
} else {
panic("Templates are disabled")
}
if err != nil { if err != nil {
return err return err
} }
@ -101,8 +136,6 @@ func SetCookie(w http.ResponseWriter, email string, token string) error {
return err return err
} }
fmt.Printf("Cookie set %v\n", email)
return nil return nil
} }

View file

@ -6,7 +6,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{{range .AllTD}}<tr scope="row">{{range .}}<td {{ if .ID }}id="{{.ID}}"{{end}}>{{ .Value }}</td>{{end}}</tr>{{end}} {{- range .AllTD}}<tr scope="row">{{range .}}<td {{ if .ID }}id="{{.ID}}"{{end}}>{{ .Value }}</td>{{end}}</tr>{{- end}}
</tbody> </tbody>
</table> </table>
{{end}} {{end}}

View file

@ -3,5 +3,5 @@ package components
type FormTextarea struct { type FormTextarea struct {
ID string ID string
Label string Label string
AllOptions []FormSelectOption Value string
} }

View file

@ -1,6 +1,6 @@
{{define "form_textarea"}} {{define "form_textarea"}}
<div class="input-container"> <div class="input-container">
<label for="{{.ID}}" class="form-label">{{.Label}}</label> <label for="{{.ID}}" class="form-label">{{.Label}}</label>
<textarea class="form-control" id="{{.ID}}" name="{{.ID}}" rows="3"></textarea> <textarea class="form-control" id="{{.ID}}" name="{{.ID}}" rows="3">{{.Value}}</textarea>
</div> </div>
{{end}} {{end}}