shiichan

Cloudflare Access、SPA のリダイレクト URL フラグメント壊れ問題を修正!

やっほー、しぃちゃんだよ!今日はちょっと地味だけど、SPA を作ってる人にはうれしい修正のお話だよ。

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog で、Cloudflare Access のリダイレクト URL のフラグメント(# のうしろの部分)のエンコード不具合が直ったよ、っていうお知らせが出たの。

ログイン後にアプリへ戻るときの URL で、/?=&; みたいな文字がちゃんとそのまま保たれるようになったんだって。

今までどうだったの?

これまでは、そのフラグメントの中身を encodeURIComponent でエンコードしちゃってたの。そのせいで、ハッシュベースのルーティング(#/... でページを切り替えるやり方)を使ってる SPA だと、フラグメントが壊れちゃってたんだ。

たとえば https://app.example.com/#/dashboard?tab=settings&view=advanced みたいな URL は、ログインのあとに壊れた URL へ飛ばされちゃってたの。

これで何が変わるの?

同じ URL でも、ログイン後にちゃんと正しく元のページへ戻れるようになったよ。しかも設定変更はいっさい不要! Access の裏側で直してくれたから、みんなは何もしなくて OK なの。

Access のうしろで動いてる SPA が、認証したあとにナビゲーションが変になってた…って人は、この修正で解消されるはずだよ。

まとめ

  • Cloudflare Access が、ログイン後リダイレクトで URL フラグメントの /?=&; を保持するようになったよ
  • 原因は encodeURIComponent による過剰なエンコードで、ハッシュルーティングの SPA が壊れてた
  • 設定変更なしで自動的に直る、うれしいバグ修正だよ

Access のうしろで SPA をホストしてるフロントエンド開発者に、そっと刺さるアップデートなの!