Compare commits

...

3 Commits

Author SHA1 Message Date
Derrick Hammer 040c662826
refactor: echo the auth cookie back if any exist 2024-03-18 17:03:17 -04:00
Derrick Hammer 66f73d1a53
feat: add EchoAuthCookie 2024-03-18 17:02:16 -04:00
Derrick Hammer 48dc1b9be0
Revert "fix: remove Secure property"
This reverts commit 9e5d996f20.
2024-03-18 16:54:42 -04:00
2 changed files with 27 additions and 0 deletions

View File

@ -8,6 +8,8 @@ import (
"strconv"
"time"
"github.com/samber/lo"
"go.sia.tech/jape"
"git.lumeweb.com/LumeWeb/portal/api/router"
@ -114,6 +116,7 @@ func SetAuthCookie(jc jape.Context, jwt string, apiName string) {
Name: routeableApi.AuthTokenName(),
Value: jwt,
Expires: time.Now().Add(24 * time.Hour),
Secure: true,
HttpOnly: true,
Path: "/",
Domain: routeableApi.Domain(),
@ -121,6 +124,29 @@ func SetAuthCookie(jc jape.Context, jwt string, apiName string) {
}
}
func EchoAuthCookie(jc jape.Context, apiName string) {
for name, api := range apiRegistry.GetAllAPIs() {
routeableApi, ok := api.(router.RoutableAPI)
if !ok {
continue
}
if len(apiName) > 0 && apiName != name {
continue
}
cookies := lo.Filter(jc.Request.Cookies(), func(item *http.Cookie, _ int) bool {
return item.Name == routeableApi.AuthTokenName()
})
if len(cookies) == 0 {
continue
}
http.SetCookie(jc.ResponseWriter, cookies[0])
}
}
func ClearAuthCookie(jc jape.Context, apiName string) {
for name, api := range apiRegistry.GetAllAPIs() {
routeableApi, ok := api.(router.RoutableAPI)

View File

@ -287,6 +287,7 @@ func (a AccountAPI) passwordResetConfirm(jc jape.Context) {
}
func (a AccountAPI) ping(jc jape.Context) {
account.EchoAuthCookie(jc, a.Name())
jc.Encode(&PongResponse{
Ping: "pong",
})