fix: issues with default player

This commit is contained in:
Rogee
2024-12-28 15:17:19 +08:00
parent 464937cf84
commit dae2941168
4 changed files with 41 additions and 8 deletions

View File

@@ -1,6 +1,8 @@
package middlewares package middlewares
import ( import (
"time"
"backend/pkg/consts" "backend/pkg/consts"
"backend/pkg/errorx" "backend/pkg/errorx"
@@ -17,7 +19,12 @@ func (f *Middlewares) ParseJWT(c fiber.Ctx) error {
token := tokens[0] token := tokens[0]
claim, err := f.jwt.Parse(token) claim, err := f.jwt.Parse(token)
if err != nil { if err != nil {
c.ClearCookie("token") c.Cookie(&fiber.Cookie{
Name: "token",
Value: "",
Expires: time.Now().Add(-1 * time.Hour),
HTTPOnly: true,
})
log.Errorf("failed to parse jwt from token: %s", token) log.Errorf("failed to parse jwt from token: %s", token)
return errorx.RequestUnAuthorized return errorx.RequestUnAuthorized
} }
@@ -26,14 +33,24 @@ func (f *Middlewares) ParseJWT(c fiber.Ctx) error {
_, err = f.userSvc.GetByOpenID(c.Context(), claim.OpenID) _, err = f.userSvc.GetByOpenID(c.Context(), claim.OpenID)
if err != nil { if err != nil {
log.Errorf("failed to get user by open id(%s) from token: %s", claim.OpenID, token) log.Errorf("failed to get user by open id(%s) from token: %s", claim.OpenID, token)
c.ClearCookie("token") c.Cookie(&fiber.Cookie{
Name: "token",
Value: "",
Expires: time.Now().Add(-1 * time.Hour),
HTTPOnly: true,
})
return errorx.RequestUnAuthorized return errorx.RequestUnAuthorized
} }
_, err = f.userSvc.GetTenantBySlug(c.Context(), claim.Tenant) _, err = f.userSvc.GetTenantBySlug(c.Context(), claim.Tenant)
if err != nil { if err != nil {
log.Errorf("failed to get tenant(%s) by from token: %s", claim.Tenant, token) log.Errorf("failed to get tenant(%s) by from token: %s", claim.Tenant, token)
c.ClearCookie("token") c.Cookie(&fiber.Cookie{
Name: "token",
Value: "",
Expires: time.Now().Add(-1 * time.Hour),
HTTPOnly: true,
})
return errorx.RequestUnAuthorized return errorx.RequestUnAuthorized
} }

View File

@@ -28,7 +28,12 @@ func (f *Middlewares) WeChatAuth(c fiber.Ctx) error {
if _, err := f.jwt.Parse(jwtToken); err != nil { if _, err := f.jwt.Parse(jwtToken); err != nil {
log.WithError(err).Error("failed to parse jwt token") log.WithError(err).Error("failed to parse jwt token")
c.ClearCookie("token") c.Cookie(&fiber.Cookie{
Name: "token",
Value: "",
Expires: time.Now().Add(-1 * time.Hour),
HTTPOnly: true,
})
return c.Redirect().To(c.Path()) return c.Redirect().To(c.Path())
} }
} }

View File

@@ -4,6 +4,7 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
"time"
"backend/modules/users" "backend/modules/users"
"backend/pkg/pg" "backend/pkg/pg"
@@ -78,6 +79,7 @@ func (c *Controller) Render(ctx fiber.Ctx) error {
ctx.Cookie(&fiber.Cookie{ ctx.Cookie(&fiber.Cookie{
Name: "token", Name: "token",
Value: jwtToken, Value: jwtToken,
Expires: time.Now().Add(6 * time.Hour),
HTTPOnly: true, HTTPOnly: true,
}) })

View File

@@ -142,10 +142,19 @@ const play = (hash, type) => {
player.play(); player.play();
}); });
} else if (player.canPlayType("application/vnd.apple.mpegurl")) { } else if (player.canPlayType("application/vnd.apple.mpegurl")) {
player.src = source; var xhr = new XMLHttpRequest();
player.addEventListener("loadedmetadata", function () { xhr.open('GET', source, true);
player.play(); xhr.setRequestHeader("Authorization", "Bearer " + __GA);
}); xhr.responseType = 'blob';
xhr.onload = function () {
if (xhr.status === 200) {
player.src = URL.createObjectURL(xhr.response);
player.addEventListener("loadedmetadata", function () {
player.play();
});
}
};
xhr.send();
} }
}; };
</script> </script>