★殴り書き
ログインAPIとブラウザが同ドメイン
→クッキー使う
ログインAPIとブラウザが別ドメイン
ログインAPIとログイン後APIが同ドメイン
→クッキー使う
ログインAPIとログイン後APIが別ドメイン
→ドメイン別でも同じリソース(Redis)にアクセスできる場合
ログインしたっていう情報をRedisに適当なハッシュをキーにして保存し、レスポンスとしてそれを返す。
後は、APIコール時にハッシュキーを送ってもらって、そのハッシュキーに該当するキーがRedisに入っていればOK
SPAの場合は、ログインAPIのレスポンスのキーを保持して、別APIコールする時に付与すればいいだけな気もする。。
javasciptで画面遷移させる(window.location.hrefを変える)場合は、その時にキーをURLのパラメータにつけてしまえば何とかなる気もする。
※極論いうと、キーをセッションに格納させるためだけのURLを用意して、ログインAPI成功後そこに一回遷移させる(パラメータにログインAPIが返したキーを付けて遷移させる)、とかすればキーの受け渡しができる
→localStorageをクロスドメインさせる
どの状況でもOK
→OpenIDconnect
("authorization code flow" は重いので "implicit flow"
※自分たちしか使わない認証であれば、OpenIDconectもどきで良いと思う。。
ブラウザへの場合はリダイレクトのパラメータにIDトークンを付ける
APIの場合は普通にヘッダにIDトークン付ける
localStrageにIDトークンを保持する必要があるので、セキュアじゃないという突っ込みあり↓(この人はAuth0を推奨している)
https://tech.hicustomer.jp/posts/modern-authentication-in-hosting-spa/