diff --git a/client/players/AudioTrack.js b/client/players/AudioTrack.js index d2f00eea9..157b12b02 100644 --- a/client/players/AudioTrack.js +++ b/client/players/AudioTrack.js @@ -1,5 +1,5 @@ export default class AudioTrack { - constructor(track, sessionId, routerBasePath) { + constructor(track, sessionId, userToken, routerBasePath) { this.index = track.index || 0 this.startOffset = track.startOffset || 0 // Total time of all previous tracks this.duration = track.duration || 0 @@ -11,7 +11,7 @@ export default class AudioTrack { this.sessionId = sessionId this.routerBasePath = routerBasePath || '' if (this.contentUrl?.startsWith('/hls')) { - this.sessionTrackUrl = this.contentUrl + this.sessionTrackUrl = `${this.contentUrl}?token=${userToken}` } else { this.sessionTrackUrl = `/public/session/${sessionId}/track/${this.index}` } diff --git a/client/players/PlayerHandler.js b/client/players/PlayerHandler.js index 5c5f281f6..0da91d5a5 100644 --- a/client/players/PlayerHandler.js +++ b/client/players/PlayerHandler.js @@ -37,6 +37,9 @@ export default class PlayerHandler { get isPlayingLocalItem() { return this.libraryItem && this.player instanceof LocalAudioPlayer } + get userToken() { + return this.ctx.$store.getters['user/getToken'] + } get playerPlaying() { return this.playerState === 'PLAYING' } @@ -223,7 +226,7 @@ export default class PlayerHandler { console.log('[PlayerHandler] Preparing Session', session) - var audioTracks = session.audioTracks.map((at) => new AudioTrack(at, session.id, this.ctx.$config.routerBasePath)) + var audioTracks = session.audioTracks.map((at) => new AudioTrack(at, session.id, this.userToken, this.ctx.$config.routerBasePath)) this.ctx.playerLoading = true this.isHlsTranscode = true diff --git a/server/Server.js b/server/Server.js index 0e53d3e9d..c3e73aec8 100644 --- a/server/Server.js +++ b/server/Server.js @@ -313,7 +313,7 @@ class Server { router.use(express.json({ limit: '5mb' })) router.use('/api', this.auth.ifAuthNeeded(this.authMiddleware.bind(this)), this.apiRouter.router) - router.use('/hls', this.hlsRouter.router) + router.use('/hls', this.authMiddleware.bind(this), this.hlsRouter.router) router.use('/public', this.publicRouter.router) // Static path to generated nuxt