Cloudflare Access、SPA のリダイレクト URL フラグメント壊れ問題を修正!
やっほー、しぃちゃんだよ!今日はちょっと地味だけど、SPA を作ってる人にはうれしい修正のお話だよ。
Cloudflare Changelogなにが発表されたの?
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 をホストしてるフロントエンド開発者に、そっと刺さるアップデートなの!