From 07069eecfad5134ee3447a849d1a2b5c582bf5d4 Mon Sep 17 00:00:00 2001 From: Greg Fodor <gfodor@gmail.com> Date: Tue, 7 Aug 2018 17:14:28 +0000 Subject: [PATCH] Remove networked content type state by properly passing auth token header --- src/components/media-loader.js | 14 ++++++++++---- src/utils/media-utils.js | 3 +-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/components/media-loader.js b/src/components/media-loader.js index 1b67a41e6..d71801161 100644 --- a/src/components/media-loader.js +++ b/src/components/media-loader.js @@ -1,13 +1,20 @@ import { getBox, getScaleCoefficient } from "../utils/auto-box-collider"; import { resolveMedia } from "../utils/media-utils"; -const fetchContentType = async url => fetch(url, { method: "HEAD" }).then(r => r.headers.get("content-type")); +const fetchContentType = async (url, token) => { + const args = { method: "HEAD" }; + + if (token) { + args.headers = { Authorization: `Token ${token}` }; + } + + return fetch(url, args).then(r => r.headers.get("content-type")); +}; AFRAME.registerComponent("media-loader", { schema: { src: { type: "string" }, token: { type: "string" }, - contentType: { type: "string" }, resize: { default: false } }, @@ -64,8 +71,7 @@ AFRAME.registerComponent("media-loader", { const { raw, origin, meta } = await resolveMedia(url); console.log("resolved", url, raw, origin, meta); - const contentType = - this.data.contentType || (meta && meta.expected_content_type) || (await fetchContentType(raw)); + const contentType = (meta && meta.expected_content_type) || (await fetchContentType(raw, token)); let blobUrl; if (token) { const response = await fetch(raw, { diff --git a/src/utils/media-utils.js b/src/utils/media-utils.js index 697612d53..770b69819 100644 --- a/src/utils/media-utils.js +++ b/src/utils/media-utils.js @@ -45,9 +45,8 @@ export const addMedia = (src, resize = false) => { upload(src) .then(response => { const src = response.raw; - const contentType = response.meta.expected_content_type; const token = response.meta.access_token; - entity.setAttribute("media-loader", { src, contentType, token }); + entity.setAttribute("media-loader", { src, token }); }) .catch(() => { entity.setAttribute("media-loader", { src: "error" }); -- GitLab