クロスドメインでのリダイレクトの挙動について検証するためのリポジトリ。
ここではOAuthとは関係なく、外部ドメインに対しての302リダイレクトの検証を行うためのミニマムなコードとなっています。
IdP-Front http://localhost/
cd idp-front
npm install # node_modulesのインストール
npm run dev # サーバー起動
IdP-API http://localhost:3000/
cd idp-api
npm install # node_modulesのインストール
npm run dev # サーバー起動
Client http://localhost:3030/
cd client-api
npm run dev # サーバー起動
npm install # node_modulesのインストール
localhost:80 localhost:3000 localhost:3030
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
│ IdP Front │ │ IdP API │ │ Client │
│ │ │ │ │ │
└───────┬────────┘ └───────┬────────┘ └───────┬────────┘
│ │ │
│ (1)POST /redirect │ │
├──────────────────────────────►│ │
│ │ │
│(2)302 localhost:3030/callback │ │
│◄──────────────────────────────┤ │
│ │ │
│ (3) GET /callback │ │
├───────────────────────────────┼─────────────────────────────►│
│ │ │
IdP APIのCORS設定
app.use(cors({ origin: "http://localhost:80", credentials:true}));
ClientのCORS設定
app.use(cors({ origin: "http://localhost:80", credentials:true}));