認証をどう作るか
サーバ側でチェックするだけで十分かと思ったが、そうでもない?
FLUXと絡めた話(AUTH0というサービス)
Adding authentication to your React Flux app
stormpathというサービス
Tutorial: Build a React.js Application with User Authentication
基本方針
- 通信は原則URLチェンジのタイミングでしか行わない。
ユーザ権限(非会員、通常会員、プレミアム会員)による
- 「表示」制御は、React Componentでチェックする
- 「遷移」制御(URL直叩き)は、サーバ側でチェックする
といっても分離するようなものではないかもしれない。つまり、Initial Rendering時にサーバ側で認証状態チェック。NGならリダイレクトとか。OKなら認証状態を
props
としてcomponentに渡しつつHTML生成。- その後の非同期XHR(API呼び出し)に関しては、APIごとに認証状態のチェックをAPIサーバで行うイメージ?とすると、やはりReact Component側では難しいことを考えずに、渡された
props
をみて「表示」制御を行うだけでいいんじゃないか?
世の中
- FLUXなどは特に「URL変更が必ずしも通信を伴わない」という前提があるので、クライアント側(=React Router側)でも認証状態に応じてリダイレクト、のような処理を書いているということかな。