React.jsを最近勉強しています。
バックエンド(API)をLaravel6でフロントエンドをReact.jsで作成しています。
ユーザー情報(access_tokenやuid等)をRedux(LocalStorage)管理にしています。
現状
- example.comでログイン,ユーザー情報をreduxに保存
(ユーザー情報をredux管理にしなければ,新しいタブなどを開くと再度ログインしなければならないため)
- fetchを使って,api.example.comとheaderにBearerを含めて通信し,情報の送受信
問題点
- ユーザー情報がRedux管理なため,ユーザーに値を書き換えられてしまう。
実現したい内容
- login.example.comでログイン(phpページ),ユーザー情報をセッション(phpの$_SESSION)に保存
- ログイン後,example.comにリダイレクト(React.jsのSPA)
- API通信はexample.comからlogin.example.com/api.php(セッションからheaderにBearerを追加)を経由して,api.example.comと通信
(.phpは実際には入れません。便宜上入れています。)
のように考えています。
ログインページはreact.jsにせず,phpで行いたいと考えています。
また,fetchで直接APIのurlを叩くと,ユーザーにAPIのURLがばれてしまうので間にapi.phpを経由し,cURLでデータの送受信をしようと考えています。
ご教授して頂きたい内容
- login.example.comでログイン,ユーザー情報をセッション(phpの$_SESSION)に保存という方法でもAPI通信の時にセッションの値を参照することは可能か
(セッションの仕組み的に不可能そうだなと思います)
- react.jsでログインして,ユーザー情報をユーザーに値が書き換えられず,かつ,新しいタブを開いてもログインが維持できる方法
(要するにphpのWebアプリでログイン情報をセッション(phpの$_SESSION)で管理するような感じ)
- api.phpを経由しなくてもapi.example.comのAPIエンドポイントがユーザーにばれない方法
あなたの回答
tips
プレビュー