1. 現状 & わからないこと
フロントエンドにて、リッチエディタを使用しております。
リッチエディタの中に画像が挿入された場合、
その画像はバックエンドサーバー内に保存し、
画像を取得するURLをリッチエディタのimgタグのsrc属性に設定する仕様としております。
バックエンドサーバーはREST API として提供しており、
ユーザーの判定はJWTトークンをHTTPヘッダーに渡すことで実現しております。
リッチエディタ内の画像についてはユーザーごとに厳格なアクセス制御をる必要があるのですが、
imgタグのsrc属性に設定されたURLのアクセス時にHTTPヘッダーを設定する方法がわかりません。
また、リッチエディタに挿入する画像をそもそも imgタグのsrc属性で管理すること自体
ナンセンスなのかもしれませんが、
他の実装案が思いついておらず、困っている状況でございます。
補足ですが、バックエンド・フロントエンド共に私の担当領域であるため、
実装の修正はいずれも柔軟にできます。
つきましては、なるべくあるべき実装にしていきたいと考えております。
何かアイデアなど頂けませんでしょうか。
よろしくお願い致します。
P.S.
参考までに、本件、Jiraの画像管理の方式を調査して参考にしようと思ったのですが、
現時点でイマイチ正しく理解できていません。
この点についてもこんな方式で実現しているのではないか、という仮説がありましたら
ご教示頂けますと幸いです。
[2020/6/18 12:41 追記]
その後、更に Jira の実装を解析しました。
その結果、以下がわかりました。
① リッチエディタにて画像が挿入された際、img 要素をラップする div 要素にて、 data-id
というカスタム属性を用いて画像のidを示している
② data-id を基に Ajax 通信を使用してサーバー側と REST通信を実行
③ 得られたデータは URL.createObjectURL() で内部的なURLに変換
④ 得られた内部的なURLを①で言及した div タグ配下のimgタグに挿入する (JSによるDOM操作が走っていると思われ)
ここからは恐らくですが、
ユーザーによるリッチエディタの編集が完了して保存された際は、
imgタグをラップするdivタグを走査してその配下のimgタグを初期化 / 削除した後サーバーに送信
(もしくはサーバー側で除去) しているのではないかと思います。
同じことを実装すれば一旦本課題はcloseできそうですが、
できればDOM操作を避けることができるとより良いです。
回答3件
あなたの回答
tips
プレビュー