ionic-team / ionic-team/ionic-cli

ability to rewrite location and cookies on v1-toolkit proxies

オープン
#4,770 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
triage
主要言語
TypeScript
スター
2k
フォーク
682
PR マージ指標
30日以内にマージされた PR はありません

説明

Our app runs **ionic v1** and until now **we used Chrome** with some **security settings turned off** when testing our app in order to avoid most cross-origin issues like CORS and cookie samesite over HTTP when we call our REST API.

Recently **Chrome 94 dropped support of some flags** we really need like `SameSiteByDefaultCookies` or `CookiesWithoutSameSiteMustBeSecure`.

So **we decided to use ionic's *proxies* feature** which is configurable in `ionic.config.json`.

Unfortunately **we went through some impediments**:
1) one of **our api does some redirection** (like `http://testserver` 302-redirects to `http://testserver/otherapi`)
2) on production servers, **some cookies have a domain set**, which of course won't match the local test server entry point (usually http://localhost:8100)
3) we have a lot of different test servers, this would require a lot of entries in the proxies array.

To cover cases 1) and 2), we **implemented new settings** for the proxy (development has started on [a fork](https://github.com/esker-software/ionic-cli/tree/v1-toolkit-proxy-rewrite-location-and-cookie)):
* `cookieDomainRewrite: { [domain: string]: string };` **turns on rewriting cookie domain** on set-cookie headers
* `locationRewrite: boolean` **turns on rewriting location host+port AND path on redirection**. For example if you proxy `/api` to `http://testserver` then a header `Location: http://testserver/otherapi` would be rewritten to `Location: http://localhost:8100/api/otherapi`.
* `debug: boolean` **turns on verbose debugging** of `http-proxy-middleware`

I know v1 is quite old, but **could these features be of interest for other users** and so we might open a pull request ? Or maybe you have some suggestions ?

For case 3) we are willing to implement **dynamic proxy based on path**. The idea is to redirect on a different server based on a part of the path. Something that would be configurable this way:
```json
{
"path": "/api/*",
"proxyUrl": "http://$1/"
}
```

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。